Apache、PHP 3 與 MySQL 是早期開源動態網站開發的「鐵三角」組合。雖然版本已久,但其安裝邏輯與核心概念對理解現代 LAMP/LEMP 架構仍具參考價值。本文詳細記錄從原始碼編譯安裝到 RPM 套件部署的完整流程,並涵蓋模組化與靜態編譯兩種 PHP 整合模式。
本教學以 RedHat Linux 6.1 為基準環境,採用的經典版本組合如下:
| 軟體 | 官方網站 | 版本 | 下載檔案 |
|---|---|---|---|
| Apache | https://www.apache.org/httpd.html | 1.3.9 | apache_1.3.9.tar.gz |
| PHP | https://www.php.net/ | 3.0.13 | php-3.0.13.tar.gz |
| MySQL | https://www.mysql.com | 3.22.29 | MySQL-3.22.29-1.i386.rpm 等四個 RPM 包 |
提示:現代部署建議直接使用發行版套件管理器(yum、apt、dnf)安裝最新穩定版,僅在維護舊系統或教學實驗時參考本文版本。
rpm -q MySQL MySQL-client MySQL-devel MySQL-shared
全新安裝:
rpm -i MySQL-3.22.29-1.i386.rpm
rpm -i MySQL-client-3.22.29-1.i386.rpm
rpm -i MySQL-devel-3.22.29-1.i386.rpm
rpm -i MySQL-shared-3.22.29-1.i386.rpm
升級現有版本:
rpm -Uvh MySQL-3.22.29-1.i386.rpm
rpm -Uvh MySQL-client-3.22.29-1.i386.rpm
rpm -Uvh MySQL-devel-3.22.29-1.i386.rpm
rpm -Uvh MySQL-shared-3.22.29-1.i386.rpm
安裝過程會提示設定 root 密碼。預設安裝路徑:執行檔 /usr/bin、標頭檔 /usr/include/mysql、函式庫 /usr/lib/mysql。
cd /apps
tar zxvf apache_1.3.9.tar.gz
cd apache_1.3.9
./configure --prefix=/www
cd ../php-3.0.13
./configure --with-mysql --with-apache=../apache_1.3.9
make && make install
cd ../apache_1.3.9
./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a
make && make install
此方式將 PHP 直接編譯進 Apache 二進制檔,效能優於 DSO 動態模組模式。
cd /www/conf
# 編輯 httpd.conf,取消註解:
AddType application/x-httpd-php3 .php3
/www/bin/apachectl start
ps aux | grep httpd # 確認進程存在
lynx localhost # 測試靜態頁面
在 /www/htdocs/ex.php3 建立測試檔:
<?php
$myvar = "Hello, World!";
echo $myvar;
phpinfo();
?>
瀏覽 https://localhost/ex.php3 應顯示「Hello, World!」及 PHP 詳細資訊。
先匯入測試資料:
mysql -u root -p mydb < mydb.dump
建立 test.php3:
<?php
$db = mysql_connect("localhost", "root", "your_password");
mysql_select_db("mydb", $db);
$result = mysql_query("SELECT * FROM employees", $db);
printf("First Name: %s\n", mysql_result($result, 0, "first"));
printf("Last Name: %s\n", mysql_result($result, 0, "last"));
printf("Address: %s\n", mysql_result($result, 0, "address"));
printf("Position: %s\n", mysql_result($result, 0, "position"));
?>
若輸出 Bob Smith 的資料,代表整合成功。
cd /apps/apache_1.3.9
./configure --prefix=/web --enable-shared=max
make && make install
cd ../php-3.0.13
./configure --with-apxs=/web/bin/apxs --with-config-file-path=/web --with-mysql
make && make install
cp php3.ini-dist /web/php3.ini
# 編輯 /web/conf/httpd.conf,確保包含:
LoadModule php3_module libexec/libphp3.so
AddModule mod_php3.c
AddType application/x-httpd-php3 .php3
/web/bin/apachectl restart
適合偏好套件管理的環境,但需注意 RedHat 預設 PHP RPM 未啟用 MySQL 支援,需重建 SRPM。
rpm -e php-imap php-ldap php-pgsql php php-manual
# 需安裝:apache apache-devel postgresql postgresql-devel MySQL-devel
rpm -i php-3.0.12-6.src.rpm
cd /usr/src/redhat/SPECS
vi php.spec # 在 %build 區段的 ./configure 參數中加入 --with-mysql=/usr
rpm -bb /usr/src/redhat/SPECS/php.spec
rpm -i /usr/src/redhat/RPMS/i386/*.rpm
# 編輯 /etc/httpd/conf/httpd.conf
AddModule mod_php3.c
LoadModule php3_module modules/libphp3.so
# 編輯 /etc/httpd/conf/srm.conf
AddType application/x-httpd-php3 .php3
mysql_secure_installation 強化資料庫安全。mysqli 或 PDO 擴展。本文完整呈現了經典三元組的多種部署路徑,雖版本老舊,但編譯參數、模組整合邏輯、配置檔結構等核心知識在現代部署中依然通用,值得系統管理員與後端開發者參考研習。