首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

LNMP 源碼編譯安裝與核心配置詳解:Nginx、MySQL、PHP 完整指南

     編輯:PHP 相關知識

前言

本文記錄 LNMP(Linux + Nginx + MySQL + PHP)生產環境的源碼編譯安裝全過程及核心配置優化,適合需要精確控制版本與模塊的場景。

一、Nginx 編譯安裝

1. 依賴庫安裝

# OpenSSL
tar zxf openssl-1.0.1r.tar.gz

# PCRE
tar zxf pcre-8.32.tar.gz
cd pcre-8.32
./configure --prefix=/usr/local/lanmp/lib/pcre
make && make install

# zlib
tar zxf zlib-1.2.7.tar.gz
cd zlib-1.2.7
./configure --prefix=/usr/local/lanmp/lib/zlib
make && make install

2. Nginx 編譯參數詳解

cd nginx-1.8.0
./configure \
--prefix=/usr/local/lanmp/nginx \
--user=www-data \
--group=www-data \
--with-http_ssl_module \
--with-openssl=/usr/local/src/openssl-1.0.1r \
--with-zlib=/usr/local/src/zlib-1.2.7 \
--with-pcre=/usr/local/src/pcre-8.32 \
--conf-path=/etc/lanmp/nginx.conf
make && make install

關鍵參數說明:

  • --with-http_ssl_module:啟用 HTTPS 支持
  • --with-openssl/zlib/pcre:指定依賴庫源碼路徑(靜態編譯)
  • --conf-path:配置文件路徑

3. 啟動與服務註冊

/usr/local/lanmp/nginx/sbin/nginx  # 啟動
cp /usr/local/lanmp/nginx/sbin/nginx /etc/init.d/  # 加入服務

4. Nginx 核心配置優化

# 全局區塊
worker_processes 2;
worker_rlimit_nofile 65535;

events {
    use epoll;              # 高性能事件模型
    worker_connections 10240;
}

http {
    keepalive_timeout 0;
    gzip on;
    gzip_buffers 16 8K;
    gzip_comp_level 6;
    gzip_min_length 4K;
    gzip_types text/html text/css;
    gzip_vary on;

    server {
        location ~ .*\.(gif|jpg|png|bmp|swf)$ {
            expires 1d;       # 靜態資源緩存 1 天
        }
    }
}

二、MySQL 5.6.15 編譯安裝

1. 依賴與編譯

yum -y install ncurses-devel  # 或 apt-get install libncurses5-dev

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/lanmp/mysql \
-DMYSQL_DATADIR=/usr/local/lanmp/mysql/data \
-DSYSCONFDIR=/etc/lanmp/mysql \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
make && make install

2. 初始化與服務配置

groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql /usr/local/lanmp/mysql

cd /usr/local/lanmp/mysql/scripts
./mysql_install_db --user=mysql --basedir=/usr/local/lanmp/mysql --datadir=/usr/local/lanmp/mysql

cp /usr/local/lanmp/mysql/support-files/mysql.server /etc/init.d/mysqld
cp /usr/local/lanmp/mysql/support-files/my-default.cnf /etc/lanmp/mysql/my.cnf

service mysqld start
/usr/local/lanmp/mysql/bin/mysqladmin -u root password "123456"

3. MySQL 核心配置

innodb_buffer_pool_size = 128M
port = 3306
server_id = 1
socket = /var/lib/mysql/mysql.sock
back_log = 384
key_buffer_size = 128M
max_connections = 500
thread_concurrency = 2

三、PHP 7.0.3 編譯安裝

1. 依賴庫安裝

依次編譯安裝至 /usr/local/lanmp/lib/:

  • freetype-2.4.10
  • jpegsrc.v8b
  • libpng-1.5.14
  • libxml2-2.9.0
  • libiconv-1.7

2. PHP 編譯參數

./configure \
--prefix=/usr/local/lanmp/fcgphp \
--with-config-file-path=/etc/lanmp/fcgphp.ini \
--with-mysqli=/usr/local/lanmp/mysql/bin/mysql_config \
--enable-mbstring \
--with-freetype-dir=/usr/local/lanmp/lib/freetype \
--with-jpeg-dir=/usr/local/lanmp/lib/libjpeg \
--with-png-dir=/usr/local/lanmp/lib/libpng \
--with-zlib-dir=/usr/local/lanmp/lib/zlib \
--with-libxml-dir=/usr/local/lanmp/lib/libxml \
--enable-xml \
--with-iconv-dir=/usr/local/lanmp/lib/libiconv \
--enable-fpm \
--with-pdo-mysql=/usr/local/lanmp/mysql
make && make install

cp php.ini-development /etc/lanmp/fcgphp.ini

3. PHP-FPM 配置與啟動

cd /usr/local/lanmp/fcgphp/etc/php-fpm.d/
cp www.conf.default www.conf

# 啟動
/usr/local/lanmp/fcgphp/sbin/php-fpm

4. PHP-FPM 進程管理配置

pm = dynamic
pm.max_children = 300
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35

總結

源碼編譯雖繁瑣,但能精確控制版本、模塊與優化參數,適合生產環境精細化運維。建議將編譯參數腳本化,便於後續復現與升級。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved