記錄一次全新服務器的 LAMP 環境從源碼編譯部署全過程,版本:MySQL 3.23.52、Apache 1.3.26、PHP 4.2.3。步驟經實測可用,但不保證適用於其他版本。
cd /home/tmp
rpm -ivh MySQL-3.23.52-1.i386.rpm # Server
rpm -ivh MySQL-client-3.23.52-1.i386.rpm # Client
/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
./configure --prefix=/usr/local/apache --enable-module=so
make && make install
關鍵: --enable-module=so 必須啟用,否則 PHP 編譯找不到 apxs。
cd /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
關鍵: PHP 4.2.3 預設配置文件路徑變更,必須指定 --with-config-file-path,否則 php.ini 不生效。
vi /usr/local/apache/conf/httpd.conf
# ServerAdmin 你的郵箱
# DocumentRoot "/home/httpd/html"
# Options FollowSymLinks MultiViews (去掉 Indexes 安全起見)
# DirectoryIndex default.php default.phtml default.php3 default.html default.htm
# AddType application/x-httpd-php .php .phtml .php3 .inc
# AddType application/x-httpd-php-source .phps
vi /usr/local/lib/php.ini
register_globals = On # 舊代碼相容,新項目建議 Off
/usr/local/apache/bin/apachectl start
# 瀏覽器訪問 https://localhost/info.php 應顯示 phpinfo()
Apache 1.3 預設 HARD_SERVER_LIMIT 256,修改 src/include/httpd.h 重新編譯可提升至 2048。
源碼編譯雖繁瑣,但能精確控制模塊與優化參數,適合對性能與安全有嚴格要求的生產環境。