CentOS LNMP升级注意事项
升级前必须备份所有关键数据,包括:Nginx配置文件(/etc/nginx/)、MySQL/MariaDB数据库(使用mysqldump或mariadb-dump导出所有数据库)、PHP配置文件(/etc/php.ini、/etc/php-fpm.conf及自定义扩展配置)、网站程序文件(/var/www/或自定义站点目录)。备份文件需存储在本地或远程安全位置(如对象存储),确保升级失败时可快速恢复。
升级前需确认各组件版本之间的兼容性:
建议按“Nginx→MySQL/MariaDB→PHP”的顺序逐步升级,而非一次性升级所有组件:
yum安装,直接运行sudo yum update nginx;若源码编译,需下载新版本源码,重新./configure、make、make install;sudo yum remove mysql-server)后安装新版本,MariaDB同理;yum安装,运行sudo yum update php php-mysqlnd php-fpm;若源码编译,需调整./configure参数(如添加--with-mysqli)并重新编译安装。每升级一个组件后,重启服务(sudo systemctl restart nginx/mysqld/php-fpm)并验证版本(nginx -v/mysql -V/php -v)。升级后,检查各组件配置文件是否有不兼容的更改:
nginx.conf,重点检查server块、location指令(如PHP处理部分的fastcgi_pass路径是否指向新PHP-FPM socket)、worker_processes等参数;my.cnf(或/etc/mysql/my.cnf),确认innodb_buffer_pool_size、max_connections等参数是否合理,避免新版本默认值导致性能问题;php.ini,确认memory_limit、upload_max_filesize、opcache.enable等参数是否符合应用需求(如PHP 8.0+默认开启opcache,需调整opcache.memory_consumption)。优先在测试环境(如虚拟机、临时服务器)中模拟升级流程,完成升级后:
phpinfo()),验证PHP扩展(如mysqli、gd)是否加载成功。测试通过后再在生产环境执行升级。升级过程中及完成后,密切监控服务状态和日志:
sudo systemctl status nginx、sudo systemctl status mysqld、sudo systemctl status php-fpm检查服务是否正常运行,若有异常(如active (exited)),需查看对应日志;/var/log/nginx/error.log)、MySQL错误日志(/var/log/mysqld.log)、PHP-FPM错误日志(/var/log/php-fpm/error.log),及时发现并解决升级导致的配置错误或兼容性问题。升级后需强化系统安全:
http_gunzip_module若未使用),减少攻击面;/var/www/html设置为755,文件设置为644),避免PHP脚本被未授权访问;exec、shell_exec),仅启用必需扩展(如mysqli、pdo_mysql),降低安全风险。