LNMP是指Linux系统下Nginx、MySQL、PHP这种网站服务器架构。要实现LNMP的自动化部署,可以通过编写shell脚本或使用现有的自动化工具来实现。以下是一个基本的LNMP自动化部署步骤和脚本示例:
安装依赖包: 安装编译和运行LNMP所需的基础软件包,如gcc、make、pcre等。
安装Nginx: 下载并解压Nginx源码,配置并编译安装。
安装MySQL/MariaDB: 下载并解压MySQL或MariaDB源码,配置并编译安装。
安装PHP: 下载并解压PHP源码,配置并编译安装,确保启用必要的PHP模块,如fpm。
配置Nginx支持PHP: 修改Nginx配置文件,使其能够处理PHP请求。
配置PHP-FPM: 配置PHP-FPM以与Nginx配合工作。
启动服务并设置开机自启动: 使用systemctl命令启动Nginx、MySQL/MariaDB和PHP-FPM服务,并设置开机自启动。
以下是一个简单的LNMP自动化部署脚本示例:
#!/bin/bash
# LNMP自动化部署脚本
# 安装必须环境
yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers pcre pcre-* openssl*
# 下载并安装Nginx
cd /usr/local
wget http://nginx.org/download/nginx-1.11.5.tar.gz
tar zxvf nginx-1.11.5.tar.gz
cd nginx-1.11.5
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre
make && make install
cd ..
# 修改Nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
# ...
# 启动Nginx并设置开机自启动
echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local
systemctl start nginx
systemctl enable nginx
# 安装MySQL
yum install -y mysql mysql-server
systemctl enable mysqld
systemctl start mysqld
# 设置MySQL密码
mysql_secure_installation
# 安装PHP
cd /usr/local
wget http://cn2.php.net/distributions/php-7.0.11.tar.gz
tar zxvf php-7.0.11.tar.gz
cd php-7.0.11
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath
make && make install
# 配置PHP-FPM
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
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
# 修改PHP-FPM配置文件
sed -i 's/user = apache/user = www/' /usr/local/php/etc/php-fpm.d/www.conf
sed -i 's/group = apache/group = www/' /usr/local/php/etc/php-fpm.d/www.conf
# 启动PHP-FPM并设置开机自启动
echo "/usr/local/php/sbin/php-fpm" >> /etc/rc.local
systemctl start php-fpm
systemctl enable php-fpm
请注意,上述脚本是一个基本示例,实际部署时可能需要根据具体需求进行调整。例如,可能需要添加SSL支持、配置数据库初始化脚本、设置防火墙规则等。
在使用自动化脚本时,请确保你理解脚本中的每一步操作,并在生产环境中进行充分的测试。此外,自动化脚本可能会随着软件版本的更新而变得过时,因此需要定期更新脚本以确保其与最新的软件版本兼容。