公司新伺服器到貨,花了一整個上午從原始碼編譯安裝 MySQL 3.23.52 + Apache 1.3.26 + PHP 4.2.3。新舊版本參數差異不小,特記錄完整步驟供參考(不保證適用於其他版本)。
/home/tmpcd /home/tmp # 安裝 Server 端 rpm -ivh mysql-3.23.52-1.i386.rpm # 安裝 Client 端 rpm -ivh mysql-client-3.23.52-1.i386.rpm # 啟動服務 (背景執行) /usr/mysql/safe_mysqld & # 進入客戶端設定 root 遠程存取 mysql USE mysql; UPDATE user SET host = '%' WHERE user = 'root' AND host <> 'localhost'; FLUSH PRIVILEGES; QUIT
cd /home/tmp tar -zxvf apache_1.3.26.tar.gz mv apache_1.3.26 apache cd apache # 關鍵參數:--enable-module=so (支援動態載入模組,PHP 需要) ./configure --prefix=/usr/local/apache --enable-module=so make make install # 安裝至 /usr/local/apache
避坑: Apache 1.3.26 預設不編譯 mod_so,必須加 --enable-module=so,否則後續 PHP 找不到 apxs 會報錯。
cd /home/tmp tar -zxvf php-4.2.3.tar.gz mv php-4.2.3 php cd php # 關鍵參數說明: # --with-apxs=/usr/local/apache/bin/apxs 指定 Apache 的 apxs 路徑 # --with-config-file-path=/usr/local/lib 指定 php.ini 讀取路徑 (新版預設路徑變更) # --enable-track-vars --with-xml --with-mysql 啟用常用擴充 ./configure --prefix=/usr/local/php \ --with-apxs=/usr/local/apache/bin/apxs \ --with-config-file-path=/usr/local/lib \ --enable-track-vars --with-xml --with-mysql make make install # 複製預設設定檔 cp php.ini-dist /usr/local/lib/php.ini
避坑: PHP 4.2.3 預設設定檔路徑已變更,若不指定 --with-config-file-path,php.ini 放哪都不生效。
vi /usr/local/apache/conf/httpd.conf
關鍵修改點:
ServerAdmin:改為你的管理員信箱DocumentRoot:設定網站根目錄 (如 /home/httpd/html)Options:移除 Indexes (安全考量,防止目錄瀏覽)DirectoryIndex:default.php default.phtml default.php3 default.html default.htmAddType application/x-httpd-php .php .phtml .php3 .inc AddType application/x-httpd-php-source .phps
vi /usr/local/lib/php.ini # 開啟 register_globals (舊版程式常需求,新版建議關閉) register_globals = On
/usr/local/apache/bin/apachectl start
瀏覽器訪問 https://ServerIP/ 應顯示預設頁面;建立 phpinfo.php 驗證 PHP 模組載入正常。
Apache 1.3 硬編碼限制 HARD_SERVER_LIMIT 256。需修改原始碼重編譯:
vi /home/tmp/apache/src/include/httpd.h # 將 #define HARD_SERVER_LIMIT 256 改為 2048 # 重新 make && make install
手動編譯 LAMP 雖繁瑣,但能深入理解模組依賴與參數意義。生產環境建議改用套件管理器 (yum/apt) 或編譯更新版本 (Apache 2.4 + PHP 7/8 + MySQL 5.7/8.0) 以獲得安全性與效能保障。本文僅作舊版本遷移維護參考。