雖然 RHEL 5.4 已停止維護,但許多舊系統仍在運行。本文記錄從原始碼編譯安裝高效能 LNMP 堆疊的完整過程,涵蓋套件下載、依賴庫建置、PHP-FPM 修補、多種加速器選擇與 MD5 校驗,適合需維護舊版環境或學習原始碼部署細節的工程師參考。
建立工作目錄 /soft/diy,使用 wget 逐一下載。關鍵套件清單:
nginx-1.0.0.tar.gzphp-5.2.17.tar.bz2php-5.2.17-fpm-0.5.14.diff.gz(官方 PHP 5.2 無內建 FPM,需打補丁)mysql-5.1.40.tar.gzlibiconv-1.13.1.tar.gz務必對照 MD5 校驗碼(文中附有完整清單),防止下載損毀或被竄改。
rpm -qa | egrep 'httpd|mysql|php' → yum remove 移除。yum -y install patch make gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel vim-minimal nano sendmail fonts-chinese gettext gettext-devel gmp-devel pspell-devel unzip./configure --prefix=/usr/local && make && make install./configure && make && make install → 進入 libltdl/ 目錄 ./configure --enable-ltdl-install && make && make install → ldconfig./configure && make && make install/usr/lib:ln -s /usr/local/lib/libmcrypt.{la,so,so.4,so.4.4.8} /usr/lib/ln -s /usr/local/lib/libmhash.{a,la,so,so.2} /usr/lib/後續仍需編譯安裝 libmcrypt、mcrypt、freetype、libpng、libjpeg、libxml2、openssl、curl 等,再進行 PHP 本體編譯(含 --enable-fpm、--with-mysql、--with-gd、--enable-mbstring 等參數)、Nginx 編譯(--with-http_ssl_module、--with-http_gzip_static_module 等)、MySQL 編譯安裝與初始化資料庫。
libiconv 版本陷阱:1.13.1 下載極慢,文中改用 1.13 版成功編譯。安裝完成後仍需:
1. 配置 php-fpm.conf(進程管理模式、慢日誌、權限)
2. 編寫 nginx.conf 虛擬主機、FastCGI 參數、靜態資源快取
3. MySQL my.cnf 調優(InnoDB buffer pool、查詢快取、連線數)
4. 建立啟動腳本加入 chkconfig、配置 logrotate 日誌切割
5. 防火牆開放 80/443/3306、SELinux 設定或暫時關閉
原始碼部署雖繁瑣,卻能精確控制版本、編譯參數與安裝路徑,是理解 Linux 軟體堆疊運作的最佳練習。現代生產環境建議改用 Ansible、Docker 或編譯好的 RPM/DEB 套件管理,但掌握原始碼安裝細節,仍是高階運維排錯的基本功。