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

LNMP 源碼編譯安裝全流程:Linux + Nginx + MySQL + PHP + phpwind 部署實戰

     編輯:PHP 綜合知識

LNMP (Linux + Nginx + MySQL + PHP) 是高性能 Web 架構首選。本文記錄從源碼編譯安裝各組件、配置關聯、部署 phpwind 論壇的完整實戰流程(教學/學習用途,生產環境建議用編譯工具/容器)。

環境與版本

  • OS: CentOS 6.x (示例)
  • MySQL: 5.5.15 (二進制包)
  • PHP: 5.4.x (源碼編譯)
  • Nginx: 1.4.x (源碼編譯)
  • phpwind: 9.x

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

# 1. 解壓並移動
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

# 2. 創建用戶組/用戶
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql

# 3. 權限設置
cd /usr/local/mysql
chown -R mysql:mysql .
chown -R root .
chown -R mysql data

# 4. 初始化數據庫 (5.5 版本)
scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

# 5. 配置文件
cp support-files/my-medium.cnf /etc/my.cnf

# 6. 啟動腳本
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start

# 7. 環境變量 (方便直接用 mysql 命令)
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
source /etc/profile

# 8. 庫文件與頭文件鏈接 (供 PHP 編譯找到)
echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
ldconfig
ln -s /usr/local/mysql/include /usr/include/mysql

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

# 1. 安裝編譯依賴
yum groupinstall -y "Development Tools"
yum install -y libxml2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel \
    openssl-devel libmcrypt-devel libxslt-devel bzip2-devel

# 2. 下載解壓 PHP
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

# 3. 配置編譯參數 (關鍵:--with-mysql, --with-mysqli, --with-pdo-mysql 指向 mysql 安裝路徑)
./configure \
    --prefix=/usr/local/php \
    --with-config-file-path=/usr/local/php/etc \
    --enable-fpm \
    --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 \
    --enable-fpm \
    --with-fpm-user=www \
    --with-fpm-group=www

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

# 5. 配置文件
cp php.ini-production /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# 編輯 php-fpm.conf 設置 pid, error_log, pool 等

# 6. 啟動 PHP-FPM
/usr/local/php/sbin/php-fpm
# 加入開機啟動
echo '/usr/local/php/sbin/php-fpm' >> /etc/rc.local

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

# 1. 安裝依賴
yum install -y pcre-devel openssl-devel

# 2. 下載編譯
wget https://nginx.org/download/nginx-1.4.7.tar.gz
tar zxvf nginx-1.4.7.tar.gz
cd nginx-1.4.7
./configure \
    --prefix=/usr/local/nginx \
    --user=www --group=www \
    --with-http_ssl_module \
    --with-http_gzip_static_module \
    --with-http_stub_status_module \
    --with-pcre
make && make install

# 3. 基礎配置 (nginx.conf)
# 關鍵: location ~ \.php$ { fastcgi_pass unix:/tmp/php-cgi.sock; ... }

# 4. 啟動
/usr/local/nginx/sbin/nginx

第四階段:Nginx + PHP-FPM 關聯配置

# nginx.conf 關鍵 location 段
location ~ \.php$ {
    fastcgi_pass   unix:/tmp/php-cgi.sock;  # 或 127.0.0.1:9000
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

# php-fpm.conf 監聽方式一致
listen = /tmp/php-cgi.sock
listen.owner = www
listen.group = www
listen.mode = 0660

第五階段:部署 phpwind

# 1. 解壓到 Web 根目錄
unzip phpwind_v9.0_utf8.zip -d /usr/local/nginx/html/phpwind

# 2. 設置權限
chown -R www:www /usr/local/nginx/html/phpwind
chmod -R 755 /usr/local/nginx/html/phpwind

# 3. 創建數據庫
mysql -uroot -p -e "CREATE DATABASE phpwind DEFAULT CHARSET utf8;"

# 4. 瀏覽器訪問 https://your-ip/phpwind/install.php 完成安裝向導
# 填寫數據庫信息、管理員帳號等

關鍵驗證步驟

  1. curl -I https://localhost → Nginx 響應正常
  2. curl https://localhost/phpinfo.php → PHP 解析正常,顯示 mysqlnd、gd、mbstring 等擴展
  3. mysql -uphpwind -p -e "SHOW TABLES;" → phpwind 表創建成功
  4. 瀏覽器完整走完註冊、發帖、回帖流程

生產環境避坑指南

風險點建議
源碼編譯耗時長、依賴地獄使用 yum/apt 安裝官方包,或 Docker 容器化部署
版本過舊 (PHP 5.4, MySQL 5.5)升級至 PHP 8.2+, MySQL 8.0/Percona, Nginx 1.24+
無自動化部署/回滾引入 Ansible / Jenkins / GitLab CI
安全更新困難訂閱安全郵件列表,定期 yum update
單點故障架構演進:Nginx 集群 + PHP-FPM 池 + MySQL 主從/集群 + Redis 緩存

總結

本文完整記錄了 LNMP 組件源碼編譯安裝、關聯配置、phpwind 部署的全流程。對於理解組件交互原理、排查編譯錯誤、學習 Linux 運維基礎有極大幫助。**現代生產環境請使用成熟的部署工具鏈(Ansible/Docker/K8s)和長期支持版本組件。**

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