首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

從零建構 Apache + PHP 3 + MySQL 動態網站完整指南

     編輯:MySQL 資料庫相關知識

Apache、PHP 3 與 MySQL 是早期開源動態網站開發的「鐵三角」組合。雖然版本已久,但其安裝邏輯與核心概念對理解現代 LAMP/LEMP 架構仍具參考價值。本文詳細記錄從原始碼編譯安裝到 RPM 套件部署的完整流程,並涵蓋模組化與靜態編譯兩種 PHP 整合模式。

一、軟體獲取與版本規劃

本教學以 RedHat Linux 6.1 為基準環境,採用的經典版本組合如下:

軟體官方網站版本下載檔案
Apachehttps://www.apache.org/httpd.html1.3.9apache_1.3.9.tar.gz
PHPhttps://www.php.net/3.0.13php-3.0.13.tar.gz
MySQLhttps://www.mysql.com3.22.29MySQL-3.22.29-1.i386.rpm 等四個 RPM 包

提示:現代部署建議直接使用發行版套件管理器(yum、apt、dnf)安裝最新穩定版,僅在維護舊系統或教學實驗時參考本文版本。

二、MySQL 安裝與初始化

1. 檢查現有安裝

rpm -q MySQL MySQL-client MySQL-devel MySQL-shared

2. 全新安裝或升級

全新安裝:

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。

三、Apache 與 PHP 3 靜態編譯整合(效能較佳)

1. 解壓縮與配置 Apache

cd /apps
tar zxvf apache_1.3.9.tar.gz
cd apache_1.3.9
./configure --prefix=/www

2. 編譯 PHP 3 並指定 Apache 源碼目錄

cd ../php-3.0.13
./configure --with-mysql --with-apache=../apache_1.3.9
make && make install

3. 以 PHP 模組重新編譯 Apache

cd ../apache_1.3.9
./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a
make && make install

此方式將 PHP 直接編譯進 Apache 二進制檔,效能優於 DSO 動態模組模式。

4. Apache 核心配置

cd /www/conf
# 編輯 httpd.conf,取消註解:
AddType application/x-httpd-php3 .php3

5. 啟動與測試

/www/bin/apachectl start
ps aux | grep httpd  # 確認進程存在
lynx localhost       # 測試靜態頁面

6. PHP 功能驗證

在 /www/htdocs/ex.php3 建立測試檔:

<?php
$myvar = "Hello, World!";
echo $myvar;
phpinfo();
?>

瀏覽 https://localhost/ex.php3 應顯示「Hello, World!」及 PHP 詳細資訊。

7. MySQL 連線測試

先匯入測試資料:

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 的資料,代表整合成功。

四、PHP 3 作為 Apache DSO 動態模組編譯(彈性較高)

1. Apache 啟用共享模組支援

cd /apps/apache_1.3.9
./configure --prefix=/web --enable-shared=max
make && make install

2. PHP 3 以 APXS 方式編譯

cd ../php-3.0.13
./configure --with-apxs=/web/bin/apxs --with-config-file-path=/web --with-mysql
make && make install

3. 複製設定檔並調整 Apache 載入模組

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

4. 重啟驗證

/web/bin/apachectl restart

五、RPM 套件快速部署(RedHat 6.1 範例)

適合偏好套件管理的環境,但需注意 RedHat 預設 PHP RPM 未啟用 MySQL 支援,需重建 SRPM。

1. 移除舊套件並安裝開發工具

rpm -e php-imap php-ldap php-pgsql php php-manual
# 需安裝:apache apache-devel postgresql postgresql-devel MySQL-devel

2. 安裝 PHP 原始碼 RPM 並修改 spec 檔

rpm -i php-3.0.12-6.src.rpm
cd /usr/src/redhat/SPECS
vi php.spec  # 在 %build 區段的 ./configure 參數中加入 --with-mysql=/usr

3. 重建並安裝新 RPM

rpm -bb /usr/src/redhat/SPECS/php.spec
rpm -i /usr/src/redhat/RPMS/i386/*.rpm

4. 啟用 Apache PHP 模組

# 編輯 /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 強化資料庫安全。
  • PHP 3 已停止維護,生產環境請升級至 PHP 8.x 並使用 mysqli 或 PDO 擴展。
  • Apache 1.3 系列已EOL,建議遷移至 Apache 2.4 或 Nginx。
  • 定期更新作業系統與軟體套件以修補安全漏洞。

本文完整呈現了經典三元組的多種部署路徑,雖版本老舊,但編譯參數、模組整合邏輯、配置檔結構等核心知識在現代部署中依然通用,值得系統管理員與後端開發者參考研習。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved