本文介绍在 CentOS 7.6 系统上安装 LNMP 2.0 环境,并配置 WordPress 所需的相关组件与优化。
服务器操作系统基本配置
通过 SSH 登录服务器后,建议先进行基础安全加固,例如修改 SSH 端口、禁用 root 密码登录、限制使用密钥登录等。具体操作可参考相关安全指南。
基本环境及工具
安装必要的系统工具和开发包:
yum install wget screen -y && screen -S lnmp
sudo yum check-update || sudo yum update -y
yum groupinstall -y 'Development Tools'
yum install -y epel-release
yum install -y perl perl-devel perl-ExtUtils-Embed libxslt libxslt-devel libxml2 libxml2-devel gd gd-devel GeoIP GeoIP-devel
准备 LNMP 安装包
创建目录并下载 LNMP 2.0 安装包:
cd / && mkdir codefiles && cd codefiles
wget http://soft.vpser.net/lnmp/lnmp2.0.tar.gz -cO lnmp2.0.tar.gz && tar zxf lnmp2.0.tar.gz && cd lnmp2.0
下载并解压 ngx_cache_purge 模块(用于 Nginx 缓存清理):
cd src && wget https://publicfilesforkk-1251162478.cos.ap-chongqing.myqcloud.com/ngx_cache_purge-2.3.tar.gz && tar zxvf ngx_cache_purge-2.3.tar.gz && rm -rf ngx_cache_purge-2.3.tar.gz && cd ..
修改配置文件
编辑 lnmp.conf 文件,配置安装参数。以下为关键配置示例:
Download_Mirror='https://soft.lnmp.com'
Nginx_Modules_Options='--add-module=/codefiles/lnmp2.0/src/ngx_cache_purge-2.3'
PHP_Modules_Options=''
##MySQL/MariaDB database directory##
MySQL_Data_Dir='/usr/local/mysql/var'
MariaDB_Data_Dir='/usr/local/mariadb/var'
##Default website home directory##
Default_Website_Dir='/home/wwwroot/default'
Enable_Nginx_Openssl='y'
Enable_Nginx_Lua='y'
Enable_Ngx_FancyIndex='n'
Enable_Swap='y'
Enable_PHP_Exif='n'
Enable_PHP_Fileinfo='y'
Enable_PHP_Ldap='n'
Enable_PHP_Bz2='y'
Enable_PHP_Sodium='y'
Enable_PHP_Imap='n'
安装 LNMP
执行安装脚本:
./install.sh lnmp
根据提示选择数据库类型(如 MariaDB 或 MySQL)、设置 root 密码,并选择 PHP 版本。安装过程需要一定时间,请耐心等待。
安装其他必要软件
清理安装文件
安装完成后,可删除下载的压缩包和模块源码以释放空间:
rm -rf /codefiles/lnmp2.0.tar.gz && rm -rf /codefiles/lnmp2.0/src/ngx_cache_purge-2.3.tar.gz
安装 Memcached
使用 LNMP 附加脚本安装 Memcached:
cd /codefiles/lnmp2.0/ && ./addons.sh install memcached
为 WordPress 启用 Memcached 对象缓存,需要下载 object-cache.php 文件并放置于 wp-content 目录。同时,在 wp-config.php 中添加服务器配置:
global $memcached_servers;
$memcached_servers = array(
array(
'127.0.0.1', // Memcached 服务器 IP
11211 // Memcached 端口
)
);
若需远程 Memcached 服务器,请相应修改 IP 和端口,并确保防火墙规则允许访问。
启用 OPcache
LNMP 已包含 OPcache,但默认未启用。使用以下命令启用:
./addons.sh install opcache
配置泛域名 SSL 证书
申请 Let's Encrypt 泛域名证书需使用 DNS API 验证。以 HE.net 为例:
export HE_Username="您的 HE 用户名"
export HE_Password="您的 HE 密码"
lnmp dnsssl he
按照提示输入根域名(如 example.com)和泛域名(如 *.example.com)完成申请。
配置文件备份
建议备份以下关键配置文件,便于迁移或恢复:
- Nginx 主配置:
/usr/local/nginx/conf/nginx.conf - 虚拟主机配置:
/usr/local/nginx/conf/vhost/域名.conf - MySQL/MariaDB 配置:
/etc/my.cnf - PHP 配置:
/usr/local/php/etc/php.ini - PHP-FPM 配置:
/usr/local/php/etc/php-fpm.conf
计划任务配置
通过 crontab 设置定期任务,例如监控 MySQL、切割日志、备份等:
*/5 * * * * /bin/bash /codefiles/lnmp1.4/tools/checkmysql.sh
*/5 * * * * /bin/bash /codefiles/lnmp1.4/tools/check502.sh
00 03 * * * /bin/bash /codefiles/lnmp1.4/tools/cut_nginx_logs.sh
00 23 * * 3 /bin/bash /codefiles/lnmp1.4/backup.sh
注意:脚本路径需根据实际安装目录调整。
防火墙与邮件配置
配置 iptables 或云主机安全组,开放必要端口(如 80、443、22)。若需服务器发送邮件(如监控告警),需配置 /etc/mail.rc:
set from=username@example.com
set smtp=smtp.example.com
set smtp-auth-user=username
set smtp-auth-password=授权码
set smtp-auth=login
其中 smtp-auth-password 为邮箱 SMTP 授权码,非登录密码。
SNMP 监控配置
安装 SNMP 服务以便第三方监控平台采集数据:
yum install net-snmp net-snmp-devel net-snmp-utils -y
配置 SNMP v2c 或 v3 验证方式,并设置防火墙规则允许监控服务器 IP 访问 UDP 161 端口。
服务器备份策略
建议实施多层备份:
- 每日增量备份数据库至云磁盘。
- 利用云服务商快照功能,定期对系统盘和数据盘创建快照。
- 每月将网站文件和数据库打包备份至远程 FTP 或对象存储,并设置保留策略(如 30 天)。
网站优化建议
- 动静分离:将静态资源(如图片、CSS、JS)通过 Nginx 直接处理,减轻 PHP 负担。
- 全站 HTTPS:为所有站点启用 SSL,提升安全性与 SEO。
- PHP-FPM 进程池隔离:可为 I/O 密集型操作(如远程请求)配置独立的 PHP-FPM 进程池,避免阻塞主业务进程。
Nginx + PHP-FPM 架构优势
相比 Apache + mod_php,Nginx 与 PHP-FPM 的组合更易于实现动静分离、负载均衡和故障转移。PHP-FPM 支持多进程池配置,每个池可独立设置进程数,并能运行不同 PHP 版本,提供了更好的灵活性和隔离性。
通过 fastcgi_next_upstream 配置,Nginx 可在后端 PHP-FPM 进程异常时将请求转发至其他可用节点,提升可用性。