Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

LEMP 高效能 Web 伺服器建置全紀錄:CentOS 5.2 上從零手工編譯 Nginx + MySQL + PHP-FPM 完整實戰

編輯:Linux 教學

LEMP (Linux + Nginx + MySQL + PHP) 是高併發 Web 服務的黃金組合。本文記錄在 CentOS 5.2 (32/64-bit) 上,採手工編譯方式建置生產級 LEMP 環境:系統分區規劃、開發套件安裝、Nginx (含 PCRE)、GD 庫群、MySQL 5.1、PHP 5.2 + PHP-FPM 擴展 (memcache, eAccelerator, PDO_MySQL)、Zend Optimizer、nginx/php-fpm 設定檔模組化管理、啟動腳本整合、核心參數調優、磁碟 I/O 與網路堆疊優化,附常見錯誤排查與效能驗證方法。

系統分區規劃建議


/boot       100MB
swap        實體記憶體 2 倍 (上限 4GB)
/           15-20GB
/usr/local  20GB       # 軟體安裝目錄
/data       剩餘空間   # MySQL 資料、網站根目錄、日誌

核心編譯安裝流程

  1. 開發套件: yum -y install gcc gcc-c++ openssl-devel pcre-devel zlib-devel libxml2-devel libjpeg-devel libpng-devel freetype-devel curl-devel ...
  2. Nginx: ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-openssl=/usr/lib
  3. GD/圖形庫群: gd2, libiconv, libmcrypt, mhash, mcrypt 依序編裝至 /usr/local 或 /usr,跑 ldconfig。
  4. MySQL 5.1: 詳細 configure 參數含 --with-charset=gbk, --with-collation=gbk_chinese_ci, --with-plugins=all, --enable-thread-safe-client,資料目錄指向 /data/mysql/data。
  5. PHP 5.2 + FPM: 打 php-fpm 補丁,--enable-fpm --with-mysql=/usr/local/mysql --with-gd=/usr/local/gd2 --enable-mbstring --enable-soap ...,編譯後複製 php.ini-dist。
  6. PHP 擴展: memcache, eAccelerator, PDO_MySQL 透過 phpize 獨立編譯。
  7. Zend Optimizer 3.3.3: 執行安裝腳本指定 PHP 設定檔路徑。

設定檔模組化管理 (Nginx)


/usr/local/nginx/conf/nginx.conf          # 主設定
/usr/local/nginx/conf/vhost/*.conf        # 虛擬主機獨立檔案
/usr/local/nginx/conf/conf_example/       # 範例: 防盜鏈、存取控制、重導向、負載平衡

整合啟動腳本 (/etc/init.d/nginx)

單一腳本管理 nginx + php-fpm 啟動/停止/重載/狀態,含 configtest 語法檢查。

系統層面優化


# /etc/fstab 掛載選項加入 noatime 減少存取時間寫入
LABEL=/data /data ext3 defaults,noatime 0 2

# /etc/sysctl.conf 核心網路參數
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 5000 65000
sysctl -p

驗證與常見錯誤

  • phpinfo() 驗證模組載入 (驗畢即關閉)。
  • 502 Bad Gateway → 檢查 php-fpm socket 路徑、權限、進程是否存活。
  • eAccelerator vs XCache:大量快取時 eAccelerator 效能較優。
  • EA/XCache 可與 Zend Optimizer 共存。
  • locale 錯誤:export LC_ALL=C; export LC_CTYPE=C。

資源下載

  • 完整腳本包:https://www.linuxtone.org/lemp/scripts.tar.gz
  • 軟體源碼包:https://www.linuxtone.org/lemp/lemp.tar.gz

手工編譯雖繁瑣,卻能精確掌控每個元件版本與參數,構建極致穩定高效的 LEMP 平台。

Copyright © Windows教程網 All Rights Reserved