首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

LAMP 源碼編譯安裝全攻略:自定義優化與版本控制

     編輯:PHP 綜合知識

為何選擇源碼編譯安裝?

相比 RPM/YUM 安裝,源碼編譯提供更大的彈性:

  • 可自訂安裝路徑、啟用/停用特定模組、針對 CPU 架構優化編譯參數。
  • 輕鬆升級至官方最新穩定版,不受發行版軟體源更新週期限制。
  • 深入理解各組件依賴關係,利於故障排查與效能調校。

實驗環境

  • 作業系統:Linux 2.6.18-164.el5 (RHEL 5 / CentOS 5)
  • 編譯工具鏈:gcc、gcc-c++、make、autoconf、libtool 等(yum groupinstall "Development Tools")
  • 常用函式庫開發套件:zlib-devel、openssl-devel、pcre-devel、libxml2-devel、curl-devel、libjpeg-devel、libpng-devel、freetype-devel、libmcrypt-devel、mhash-devel 等

系統版本資訊 開發工具安裝確認

源碼包準備

將以下源碼包上傳至 /root 或 /usr/local/src:

  • httpd-2.2.x.tar.gz (Apache)
  • mysql-5.1.x.tar.gz (MySQL)
  • php-5.2.x.tar.gz (PHP)
  • apr-1.4.x.tar.gz、apr-util-1.5.x.tar.gz (Apache 可移植執行庫)
  • pcre-x.x.tar.gz (正則表達式庫,Apache rewrite 必須)

源碼包列表 源碼包解壓後

安裝順序與關鍵參數

1. APR / APR-Util(Apache 依賴)

# APR
tar zxvf apr-1.4.6.tar.gz -C /usr/local/src
cd /usr/local/src/apr-1.4.6
./configure --prefix=/usr/local/apr
make && make install

# APR-Util
tar zxvf apr-util-1.5.1.tar.gz -C /usr/local/src
cd /usr/local/src/apr-util-1.5.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
make && make install

2. PCRE(正則庫,Apache rewrite、PHP preg 必須)

tar zxvf pcre-8.xx.tar.gz -C /usr/local/src
cd /usr/local/src/pcre-8.xx
./configure --prefix=/usr/local/pcre
make && make install

3. Apache HTTP Server

tar zxvf httpd-2.2.14.tar.gz -C /usr/local/src
cd /usr/local/src/httpd-2.2.14
./configure \
  --prefix=/usr/local/apache \
  --enable-so \
  --enable-rewrite \
  --enable-ssl \
  --enable-modules=most \
  --enable-mods-shared=all \
  --with-apr=/usr/local/apr \
  --with-apr-util=/usr/local/apr-util \
  --with-pcre=/usr/local/pcre
make && make install

4. MySQL

# 建立 mysql 使用者與群組
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql

tar zxvf mysql-5.1.45.tar.gz -C /usr/local/src
cd /usr/local/src/mysql-5.1.45
./configure \
  --prefix=/usr/local/mysql \
  --enable-assembler \
  --with-charset=utf8 \
  --with-collation=utf8_general_ci \
  --with-extra-charsets=all \
  --with-plugins=innobase,myisam,partition
make && make install

# 初始化資料庫
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start

5. PHP

tar zxvf php-5.2.5.tar.gz -C /usr/local/src
cd /usr/local/src/php-5.2.5
./configure \
  --prefix=/usr/local/php \
  --with-apxs2=/usr/local/apache/bin/apxs \
  --with-mysql=/usr/local/mysql \
  --with-mysqli=/usr/local/mysql/bin/mysql_config \
  --with-pdo-mysql=/usr/local/mysql \
  --with-config-file-path=/usr/local/php/etc \
  --enable-mbstring \
  --enable-sockets \
  --enable-ftp \
  --enable-gd-native-ttf \
  --with-freetype-dir \
  --with-jpeg-dir \
  --with-png-dir \
  --with-zlib \
  --with-libxml-dir \
  --with-curl \
  --with-openssl \
  --with-mcrypt \
  --with-mhash \
  --enable-bcmath \
  --enable-zip \
  --enable-soap \
  --enable-calendar \
  --enable-exif
make && make install

# 複製生產環境 php.ini
cp php.ini-production /usr/local/php/etc/php.ini
# 編輯 php.ini 設定時區、錯誤日誌、上傳大小等

整合 Apache 與 PHP

編輯 /usr/local/apache/conf/httpd.conf,確認含有:

LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php .php5
AddType application/x-httpd-php-source .phps
DirectoryIndex index.php index.html

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

驗證與後續優化

  1. 建立 phpinfo.php 確認所有模組載入正常。
  2. 安裝 Zend Optimizer / OPcache、XCache、Redis、Memcached 等加速元件。
  3. 調整 MySQL my.cnf 關鍵參數:innodb_buffer_pool_size、query_cache_size、max_connections。
  4. 配置 Apache MPM(prefork/worker/event)與 MaxClients、KeepAlive 參數。

常見編譯錯誤對策

錯誤現象原因解決方法
configure: error: xml2-config not found缺少 libxml2-develyum install libxml2-devel
configure: error: Cannot find OpenSSL's <evp.h>缺少 openssl-develyum install openssl-devel
make: *** [sapi/cgi/php-cgi] Error 1libxml2 版本過舊或路徑錯誤指定 --with-libxml-dir=/usr/local/libxml2
Apache 啟動報錯: libpcre.so.0 not found動態庫路徑未加入 ld.so.confecho "/usr/local/pcre/lib" > /etc/ld.so.conf.d/pcre.conf && ldconfig
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved