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

LAMP 源碼編譯安裝全流程:Apache + MySQL + PHP + phpwind 部署詳細教程

     編輯:PHP 綜合知識

LAMP (Linux + Apache + MySQL + PHP) 是經典 Web 架構。本文記錄從源碼編譯安裝各組件、配置關聯、部署 phpwind 的完整教程(學習/教學用途,生產建議用包管理器/容器)。

環境與版本

  • OS: CentOS 6.x
  • Apache: 2.4.x (需 APR, APR-util, PCRE)
  • MySQL: 5.5.x (二進制包)
  • PHP: 5.4.x (源碼編譯)
  • phpwind: 9.x

第一階段:安裝編譯工具鏈與依賴庫

# 1. 安裝開發工具組 (GCC, make, autoconf 等)
yum groupinstall -y "Development Tools"
yum install -y "Development Libraries"

# 2. 安裝 Apache 依賴庫 (APR, APR-util, PCRE)
cd /usr/src
wget https://apache.mirrors.pair.com/apr/apr-1.5.2.tar.gz
wget https://apache.mirrors.pair.com/apr/apr-util-1.5.4.tar.gz
wget https://sourceforge.net/projects/pcre/files/pcre/8.39/pcre-8.39.tar.gz

# 編譯安裝 APR
tar zxvf apr-1.5.2.tar.gz && cd apr-1.5.2
./configure --prefix=/usr/local/apr && make && make install

# 編譯安裝 APR-util (依賴 APR)
cd ../apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install

# 編譯安裝 PCRE
cd ../pcre-8.39
./configure --prefix=/usr/local/pcre && make && make install

第二階段:Apache 源碼編譯安裝

cd /usr/src
wget https://archive.apache.org/dist/httpd/httpd-2.4.25.tar.gz
tar zxvf httpd-2.4.25.tar.gz
cd httpd-2.4.25

./configure \
    --prefix=/usr/local/apache2 \
    --with-apr=/usr/local/apr \
    --with-apr-util=/usr/local/apr-util \
    --with-pcre=/usr/local/pcre \
    --enable-so \
    --enable-rewrite \
    --enable-ssl \
    --enable-mods-shared=most \
    --with-mpm=prefork  # PHP 非線程安全模式需用 prefork

make -j$(nproc) && make install

第三階段:MySQL 安裝 (同 LNMP,二進制包)

# 參考上文 LNMP 教程 MySQL 部分,關鍵差異:
# Apache + PHP 通常用 prefork MPM,PHP 編譯不加 --enable-maintainer-zts

第四階段:PHP 源碼編譯安裝 (關鍵:--with-apxs2)

cd /usr/src
wget https://cn2.php.net/distributions/php-5.4.45.tar.gz
tar zxvf php-5.4.45.tar.gz
cd php-5.4.45

./configure \
    --prefix=/usr/local/php \
    --with-config-file-path=/usr/local/php/etc \
    --with-apxs2=/usr/local/apache2/bin/apxs  # 關鍵:生成 libphp5.so 給 Apache 載入
    --with-mysql=/usr/local/mysql \
    --with-mysqli=/usr/local/mysql/bin/mysql_config \
    --with-pdo-mysql=/usr/local/mysql \
    --with-iconv-dir \
    --with-freetype-dir \
    --with-jpeg-dir \
    --with-png-dir \
    --with-zlib \
    --with-libxml-dir \
    --enable-xml \
    --disable-rpath \
    --enable-bcmath \
    --enable-shmop \
    --enable-sysvsem \
    --enable-inline-optimization \
    --with-curl \
    --enable-mbregex \
    --enable-mbstring \
    --with-mcrypt \
    --with-gd \
    --enable-gd-native-ttf \
    --with-openssl \
    --with-mhash \
    --enable-pcntl \
    --enable-sockets \
    --with-xmlrpc \
    --enable-zip \
    --enable-soap \
    --enable-short-tags

make -j$(nproc) && make install

第五階段:Apache + PHP 關聯配置

# 1. httpd.conf 載入 PHP 模塊 (make install 通常自動添加)
LoadModule php5_module modules/libphp5.so

# 2. 識別 .php 文件

    SetHandler application/x-httpd-php


# 3. 目錄索引
DirectoryIndex index.php index.html

# 4. PHP 配置
cp php.ini-production /usr/local/php/lib/php.ini
# 修改時區、上傳限制、錯誤顯示等

# 5. 重啟 Apache
/usr/local/apache2/bin/apachectl restart

第六階段:部署 phpwind (同 LNMP)

# 解壓到 /usr/local/apache2/htdocs/phpwind
# 設置權限 daemon:daemon (Apache 運行用戶)
# 創建數據庫
# 瀏覽器安裝向導

LAMP vs LNMP 關鍵差異對比

維度LAMP (Apache)LNMP (Nginx)
PHP 運行模式mod_php (嵌入 Apache 進程)PHP-FPM (獨立進程池)
並發性能中等 (進程模型,內存佔用大)高 (事件驅動,內存效率高)
靜態文件處理一般極快
.htaccess 支持原生支持不支持 (需轉換為 nginx.conf)
配置複雜度較高較低
PHP 版本隔離困難 (單模塊)容易 (多 FPM 池)

生產環境現代化建議

  1. 棄用源碼編譯:使用 yum install httpd php php-mysql (RHEL/CentOS) 或 apt install apache2 php libapache2-mod-php php-mysql (Ubuntu/Debian)。
  2. 升級組件版本:Apache 2.4 LTS, PHP 8.2+, MySQL 8.0/Percona 8.0, MariaDB 10.6+。
  3. MPM 選擇:PHP 7.0+ 建議用 event MPM + PHP-FPM (代替 mod_php),獲得更好並發與內存隔離。
  4. 容器化部署:Docker Compose 定義 httpd/php/mysql 服務,一鍵啟動、版本鎖定、環境一致。

總結

本文詳細記錄了 LAMP 組件源碼編譯安裝全流程,重點講解了 Apache 依賴庫 (APR/APR-util/PCRE)、PHP `--with-apxs2` 關聯編譯、httpd.conf PHP 模塊載入配置。對於理解傳統 Web 架構原理、排查編譯鏈路問題極有價值。**現代項目請優先選擇 LNMP 或容器化部署,獲得更好性能與運維體驗。**

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