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

Linux 手動編譯安裝 Apache + MySQL + PHP 構建動態 Web 服務器全記錄

     編輯:MySQL 資料庫相關知識

環境基線

  • OS:Red Hat 9.0 最小安裝 + 內核開發包
  • 軟件版本:Apache 1.3.29、MySQL 3.23.58、PHP 4.3.4
  • 安裝前提:rpm -e 清理已安裝相關包

1. MySQL 3.23.58 編譯安裝


tar zxvf mysql-3.23.58.tar.gz
cd mysql-3.23.58
./configure --prefix=/usr/local/mysql \
  --sysconfdir=/etc --localstatedir=/var/lib/mysql
make && make install

# 初始化數據庫
/usr/local/mysql/bin/mysql_install_db

# 創建 mysql 用戶(不存在時)
useradd -M -o -r -d /var/lib/mysql -s /bin/bash -c "MySQL Server" -u 27 mysql

# 權限修復(關鍵:數據目錄必須屬於 mysql 用戶)
chown -R mysql:mysql /var/lib/mysql

# 啟動測試
/usr/local/mysql/bin/safe_mysqld &
mysql -uroot mysql

常見啟動失敗原因:/var/lib/mysql 權限不屬於 mysql 用戶,錯誤日志在 /var/lib/mysql/*.err。文中提供完整權限修復命令集。

2. Apache 1.3.29 編譯安裝(DSO 模式)


tar zxvf apache_1.3.29.tar.gz
cd apache_1.3.29

# 擴大最大線程限制
vi src/include/httpd.h
#define HARD_SERVER_LIMIT 2560  # 原 256

./configure --prefix=/usr/local/apache \
  --enable-module=so --enable-module=rewrite \
  --enable-shared=max --htdocsdir=/var/www
make && make install

# 啟動
/usr/local/apache/bin/apachectl start

關鍵模塊說明:so 支持 DSO 動態加載;rewrite 需 DBM 支持,首次編譯必含;enable-shared=max 將標準模塊編為 DSO 而非靜態鏈接。

3. PHP 4.3.4 編譯安裝(含 GD/圖形庫支持)


tar zxvf php-4.3.4.tar.gz
cd php-4.3.4
./configure --prefix=/usr/local/php \
  --with-mysql=/usr/local/mysql \
  --enable-force-cgi-redirect \
  --with-freetype-dir=/usr --with-png-dir=/usr \
  --with-gd --enable-gd-native-ttf --with-ttf \
  --with-gdbm --with-gettext --with-iconv \
  --with-jpeg-dir=/usr --with-png --with-zlib \
  --with-xml --enable-calendar \
  --with-apxs=/usr/local/apache/bin/apxs
make && make install

4. 整合 Apache + PHP


vi /usr/local/apache/conf/httpd.conf
# 添加 MIME 類型
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

# 複製 php.ini
cp php.ini-dist /usr/local/php/lib/php.ini
vi /usr/local/php/lib/php.ini
register_globals = On  # 兼容舊代碼,新版建議 Off

# 重啟 Apache
/usr/local/apache/bin/apachectl restart

5. 驗證


echo "" > /var/www/info.php
# 瀏覽器訪問 https://server/info.php

關鍵經驗總結

  • 庫文件鏈接:ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql 等,避免後續編譯 PHP/其他軟件找不到 MySQL 庫
  • 啟動腳本註冊:cp support-files/mysql.server /etc/rc.d/init.d/mysqld && chkconfig --add mysqld
  • 版本選擇:文中使用 Apache 1.3 而非 2.0,PHP 4 而非 5,MySQL 3.23 而非 4.0/4.1,反映 2004 年左右生產環境穩健選型傾向
  • 權限是核心:MySQL 90% 啟動失敗源於數據目錄權限錯誤

現代視角補充

當前生產環境建議:使用發行版包管理器(yum/dnf/apt)安裝 LAMP/LEMP,或容器化部署(Docker/K8s),手動編譯僅用於極度定制化場景。版本應升級至 Apache 2.4、PHP 8.x、MySQL 8.0/Percona/MariaDB 10.x 以獲取安全更新與性能提升。

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