本指南示範在 Linux 系統上從原始碼編譯安裝經典 LAMP 棧,採用的版本為:
注意: 版本較老,僅供教學與遺留系統維護參考。生產環境請使用現代版本 (MySQL 8.0、Apache 2.4、PHP 8.x) 並透過套件管理器安裝。
# 下載 RPM 包至 /home/tmp
cd /home/tmp
rpm -ivh mysql-3.23.52-1.i386.rpm # 伺服器端
rpm -ivh mysql-client-3.23.52-1.i386.rpm # 客戶端
# 啟動服務並測試
/usr/bin/safe_mysqld &
mysql -u root
# 進入 MySQL 授權 root 遠程訪僅供開發測試
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
./configure --prefix=/usr/local/apache --enable-module=so
make
make install
--enable-module=so:編譯動態共享物件支援,PHP 安裝時需用到 apxs 工具/usr/local/apachecd /home/tmp
tar -zxvf php-4.2.3.tar.gz
mv php-4.2.3 php
cd php
./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
關鍵參數說明:
--with-apxs:指定 Apache 的 apxs 路徑,自動修改 httpd.conf 載入 libphp4.so--with-config-file-path:指定 php.ini 搜尋路徑,避免配置檔不生效--enable-track-vars:啟用 $HTTP_*_VARS 陣列 (PHP 4.0.3+ 預設開啟)httpd.conf# 管理員郵箱
ServerAdmin admin@example.com
# 文件根目錄
DocumentRoot "/home/httpd/html"
# 安全性:移除 Indexes 禁止目錄瀏覽
Options FollowSymLinks MultiViews
# 預設首頁順序
DirectoryIndex default.php default.phtml default.php3 default.html default.htm
# PHP 型別關聯
AddType application/x-httpd-php .php .phtml .php3 .inc
AddType application/x-httpd-php-source .phps
php.iniregister_globals = On # 僅供舊代碼相容,新代碼請關閉並使用超全域陣列
/usr/local/apache/bin/apachectl start
在 DocumentRoot 建立 test.php:
瀏覽器訪問 https://server-ip/test.php 確認 PHP 模組載入正常。
| 問題現象 | 原因 | 解決方案 |
|---|---|---|
| PHP 編譯找不到 apxs | Apache 未啟用 mod_so | 重新編譯 Apache 加上 --enable-module=so |
| php.ini 不生效 | PHP 4.2.3 預設配置路徑變更 | 編譯時指定 --with-config-file-path=/usr/local/lib |
| Apache 進程數受限 256 | 硬編碼限制 HARD_SERVER_LIMIT | 編譯前修改 src/include/httpd.h 將 256 改為 2048 |
https://www.php.net/get_download.php?df=php-4.2.3.tar.gzhttps://www.apache.org/dist/httpd/apache_1.3.26.tar.gzhttps://www.mysql.com/downloads/...https://www.mysql.com/downloads/...本文步驟針對特定版本驗證,不保證適用於其他版本。現代部署請優先使用發布套件管理器 (yum/apt) 或容器化方案 (Docker)。