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

LAMP 環境源碼編譯安裝詳細教程:依賴準備、Apache、MySQL、PHP 全流程

     編輯:PHP 綜合知識

LAMP (Linux + Apache + MySQL + PHP) 經典架構源碼編譯安裝全流程,適合學習組件交互原理、特定版本需求、離線環境部署。生產環境建議使用包管理器/容器。

第一階段:系統準備與編譯工具鏈

1. 掛載光盤配置本地 YUM 源 (離線環境)

mkdir -p /mnt/cdrom
mount /dev/cdrom /mnt/cdrom

cat > /etc/yum.repos.d/CentOS-Media.repo <

2. 安裝 GCC 編譯器與開發庫

yum -y install gcc gcc-c++ make autoconf automake libtool \
    libxml2-devel libcurl-devel openssl-devel bzip2-devel \
    libjpeg-devel libpng-devel freetype-devel \
    pcre-devel zlib-devel

3. 關閉衝突服務與安全模組

# 停止 RPM 安裝的服務
service httpd stop 2>/dev/null; service mysqld stop 2>/dev/null
chkconfig httpd off; chkconfig mysqld off

# 關閉 SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 即時生效需重啟,或 setenforce 0

# 關閉防火牆 (演示環境)
iptables -F; iptables -X; iptables -Z
service iptables save

4. 精簡啟動服務

# 保留核心服務: network, sshd, syslog, crond, irqbalance, microcode_ctl, sendmail, atd
# 其餘可關閉
ntsysv  # 圖形界面管理

第二階段:MySQL 安裝 (二進制包,簡單)


# 解壓到 /usr/local
tar zxvf mysql-5.5.15-linux2.6-x86_64.tar.gz -C /usr/local
cd /usr/local
mv mysql-5.5.15-linux2.6-x86_64 mysql

# 用戶/權限
groupadd mysql; useradd -r -g mysql -s /sbin/nologin mysql
cd /usr/local/mysql
chown -R mysql:mysql .
chown -R root .
chown -R mysql data

# 初始化
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

# 環境變量
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
source /etc/profile

# 庫文件
echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
ldconfig
ln -s /usr/local/mysql/include /usr/include/mysql

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


# 1. 依賴庫 APR, APR-util, PCRE (見 16430 文章詳情)
# 此處假設已安裝到 /usr/local/apr, /usr/local/apr-util, /usr/local/pcre

# 2. 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

# 3. 配置編譯
./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

# 4. 編譯安裝
make -j$(nproc) && make install

# 5. 基礎配置 httpd.conf
# ServerName localhost:80
# 加載 PHP 模塊 (待 PHP 編譯後添加)

第四階段: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 \
    --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

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

# Apache 載入 PHP 模塊 (make install 已自動添加 LoadModule)
# 確認 httpd.conf 有:
# LoadModule php5_module modules/libphp5.so
#  SetHandler application/x-httpd-php 
# DirectoryIndex index.php index.html

第五階段:驗證與整合


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

# 2. 創建測試頁
echo '' > /usr/local/apache2/htdocs/phpinfo.php

# 3. 瀏覽器訪問 https://IP/phpinfo.php
# 應顯示 PHP 信息,含 mysql, gd, mbstring, curl, openssl 等擴展

# 4. 測試 MySQL 連接
echo '' > /usr/local/apache2/htdocs/db_test.php

關鍵路徑總結表

組件安裝路徑配置文件啟動命令
Apache/usr/local/apache2/usr/local/apache2/conf/httpd.conf/usr/local/apache2/bin/apachectl start
MySQL/usr/local/mysql/etc/my.cnfservice mysqld start
PHP/usr/local/php/usr/local/php/lib/php.ini(嵌入 Apache, 隨 Apache 啟動)

常見編譯錯誤速查

錯誤關鍵字缺少依賴解決包
apr.h not foundAPRapr-devel / 自編譯 APR
pcre.h not foundPCREpcre-devel
libxml2 not foundlibxml2libxml2-devel
curl/curl.h not foundlibcurllibcurl-devel
openssl/ssl.h not foundOpenSSLopenssl-devel
jpeg.h not foundlibjpeglibjpeg-devel
png.h not foundlibpnglibpng-devel
freetype/freetype.h not foundFreeTypefreetype-devel
mysql.h not foundMySQL 客戶端庫mysql-devel / 指定 --with-mysql 路徑

總結

本文詳細記錄了 LAMP 組件源碼編譯安裝的完整依賴鏈、配置參數、驗證步驟。核心難點在於:**APR/APR-util/PCRE 先於 Apache 編譯**、**PHP `--with-apxs2` 關聯 Apache 生成 libphp5.so**、**MySQL 客戶端庫路徑指定正確**。掌握此流程,可應對任意版本組合的編譯安裝需求。**現代生產環境請優先選擇 `yum/apt` 安裝官方包或 Docker 容器化部署。**

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