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 資料、網站根目錄、日誌
yum -y install gcc gcc-c++ openssl-devel pcre-devel zlib-devel libxml2-devel libjpeg-devel libpng-devel freetype-devel curl-devel ..../configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-openssl=/usr/lib/usr/local 或 /usr,跑 ldconfig。configure 參數含 --with-charset=gbk, --with-collation=gbk_chinese_ci, --with-plugins=all, --enable-thread-safe-client,資料目錄指向 /data/mysql/data。php-fpm 補丁,--enable-fpm --with-mysql=/usr/local/mysql --with-gd=/usr/local/gd2 --enable-mbstring --enable-soap ...,編譯後複製 php.ini-dist。phpize 獨立編譯。
/usr/local/nginx/conf/nginx.conf # 主設定
/usr/local/nginx/conf/vhost/*.conf # 虛擬主機獨立檔案
/usr/local/nginx/conf/conf_example/ # 範例: 防盜鏈、存取控制、重導向、負載平衡
單一腳本管理 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() 驗證模組載入 (驗畢即關閉)。export LC_ALL=C; export LC_CTYPE=C。https://www.linuxtone.org/lemp/scripts.tar.gzhttps://www.linuxtone.org/lemp/lemp.tar.gz手工編譯雖繁瑣,卻能精確掌控每個元件版本與參數,構建極致穩定高效的 LEMP 平台。
Linux 協議棧深度解析:網橋創建流程與核心數據結構初始化
awk 陣列排序四大法:內建函數、管線 sort、自定義函數與索引遍歷完整對比
Linux 經典實用技巧八則:特殊檔名處理、Loadlin 直裝、X 死機急救、快速關機、rm -r、Tab 補全、滑鼠複製、Loadlin 批次啟動
Linux 核心新增驅動程式完整教學:Kconfig、Makefile 與選單配置實戰
Linux 區塊裝置驅動開發詳解:架構、請求佇列與 RAMDISK 實作
Linux 系統管理高頻指令速查表:進程、網路、備份、計時一覽
VMware vCenter Converter Standalone Linux P2V 遷移排錯清單:9 大關鍵檢查點