在CentOS系統中,實現LNMP(Linux+Nginx+MySQL/MariaDB+PHP)環境的自動化主要依賴Shell腳本封裝和第三方一鍵安裝工具,兩者均通過標準化流程減少手動操作,提升部署效率。以下是具體實現方式及關鍵步驟:
Shell腳本是實現LNMP自動化的基礎方式,通過編寫腳本封裝依賴安裝、軟件下載、配置修改、服務管理等步驟,實現“一鍵式”部署。
一個完整的LNMP自動化腳本需包含以下關鍵環節:
gcc、make)及庫文件(如pcre-devel、openssl-devel);yum)或源碼編譯安裝Nginx、MySQL/MariaDB、PHP;systemctl enable);firewalld)放行HTTP(80)、HTTPS(443)端口,或通過mysql_secure_installation強化MySQL安全。以下是一個簡化的Shell腳本示例,展示核心邏輯:
#!/bin/bash
# LNMP自動化部署腳本(CentOS 7/8適用)
# 1. 檢查root權限
if [ "$(id -u)" != "0" ]; then
echo "錯誤:必須使用root用戶運行此腳本!"
exit 1
fi
# 2. 安裝依賴
install_dependencies() {
echo "正在安裝系統依賴..."
yum install -y epel-release wget gcc make cmake openssl-devel pcre-devel zlib-devel \
libxml2-devel libjpeg-devel libpng-devel freetype-devel
yum groupinstall -y "Development Tools"
}
# 3. 安裝Nginx
install_nginx() {
echo "正在安裝Nginx..."
yum install -y nginx
systemctl enable nginx
systemctl start nginx
}
# 4. 安裝MySQL(MariaDB)
install_mysql() {
echo "正在安裝MariaDB..."
yum install -y mariadb-server mariadb
systemctl enable mariadb
systemctl start mariadb
# 安全設置
TEMP_PASSWORD=$(grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}')
mysql_secure_installation <<EOF
$TEMP_PASSWORD
y
y
y
y
y
EOF
}
# 5. 安裝PHP
install_php() {
echo "正在安裝PHP 8.2..."
yum install -y yum-utils
yum-config-manager --enable remi-php82
yum install -y php php-fpm php-mysqlnd php-opcache php-gd
systemctl enable php-fpm
systemctl start php-fpm
# 配置Nginx支持PHP
cat > /etc/nginx/conf.d/default.conf <<EOF
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.php index.html;
location / {
try_files \$uri \$uri/ =404;
}
location ~ \.php\$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
include fastcgi_params;
}
}
EOF
}
# 6. 執行主流程
install_dependencies
install_nginx
install_mysql
install_php
echo "LNMP環境部署完成!"
NGINX_VERSION、PHP_VERSION)支持自定義軟件版本;set -e(腳本出錯立即退出)和trap(捕獲錯誤并記錄日志);./install.sh > install.log 2>&1),便于排查問題;第三方工具(如官方LNMP套件、Yum倉庫預編譯包)封裝了更完善的自動化流程,適合快速部署且穩定性更高。
官方提供的lnmp套件是國內常用的自動化部署工具,支持CentOS、Ubuntu等系統,特點包括:
lnmp start/stop/restart/status等命令,方便管理服務。使用步驟:
wget http://soft.vpser.net/lnmp/lnmp1.4-full.tar.gz
tar zxf lnmp1.4-full.tar.gz
cd lnmp1.4-full
./install.sh lnmp # 選擇“lnmp”表示安裝Nginx+MySQL+PHP;選“lnmpa”表示增加Apache支持
通過配置EPEL、Remi等Yum倉庫,可直接使用yum命令安裝預編譯的LNMP組件,無需手動編譯,適合追求快速部署的場景:
# 安裝EPEL倉庫
yum install -y epel-release
# 安裝Nginx
yum install -y nginx
systemctl enable nginx
systemctl start nginx
# 安裝MariaDB
yum install -y mariadb-server
systemctl enable mariadb
systemctl start mariadb
# 安裝PHP(通過Remi倉庫)
yum install -y yum-utils
yum-config-manager --enable remi-php82
yum install -y php php-fpm php-mysqlnd
systemctl enable php-fpm
systemctl start php-fpm
這種方式依賴倉庫的更新,適合不需要特定版本的生產環境。
curl http://localhost檢查Nginx是否響應,通過mysql -uroot -p驗證MySQL是否可登錄,通過phpinfo()頁面檢查PHP是否正常;通過上述方法,可實現CentOS下LNMP環境的快速、標準化自動化部署,顯著降低運維成本,提升部署效率。