CentOS LAMP环境版本升级指南
LAMP(Linux、Apache、MySQL/MariaDB、PHP)是CentOS系统下的经典Web栈,升级需遵循“备份→系统→数据库→PHP→Apache”的顺序,确保数据安全与兼容性。
备份关键数据
备份所有重要数据(网站文件、数据库、配置文件),避免升级失败导致数据丢失:
# 备份网站文件(默认路径/var/www/html)
tar -czvf /backup/html_backup_$(date +%F).tar.gz /var/www/html
# 备份MySQL/MariaDB数据库(需输入root密码)
mysqldump -u root -p --all-databases > /backup/all_databases_$(date +%F).sql
# 备份配置文件
cp -r /etc/httpd /etc/httpd_backup # Apache配置
cp -r /etc/my.cnf /etc/my.cnf_backup # MySQL配置(若使用MariaDB则为/etc/my.cnf.d/server.cnf)
检查当前版本
确认当前LAMP组件版本,明确升级目标:
# 查看Apache版本
apachectl -v
# 查看MySQL/MariaDB版本
mysql -V
# 查看PHP版本
php -v
更新系统包
升级系统基础包至最新稳定版,修复已知漏洞:
sudo yum update -y
Apache升级优先使用yum
包管理器(简单安全),若需特定版本可选择源码编译。
# 安装/升级Apache至最新版本
sudo yum install httpd -y
# 重启Apache服务
sudo systemctl restart httpd
# 设置开机自启
sudo systemctl enable httpd
# 验证版本
apachectl -v
若yum
仓库无所需版本,可下载源码编译:
# 备份旧配置
sudo cp -r /etc/httpd /etc/httpd_old
# 下载源码(以2.4.54为例)
wget https://downloads.apache.org/httpd/httpd-2.4.54.tar.gz
tar -zxvf httpd-2.4.54.tar.gz
cd httpd-2.4.54
# 安装依赖
sudo yum groupinstall "Development Tools" -y
sudo yum install apr-devel apr-util-devel pcre-devel -y
# 配置编译选项(调整路径)
./configure --prefix=/usr/local/apache2 --enable-so --enable-ssl --with-included-apr
# 编译安装
make
sudo make install
# 备份旧二进制文件
sudo mv /usr/sbin/httpd /usr/sbin/httpd_old
# 创建符号链接
sudo ln -s /usr/local/apache2/bin/apachectl /usr/sbin/apachectl
# 启动新Apache
sudo /usr/local/apache2/bin/apachectl start
# 验证版本
/usr/local/apache2/bin/apachectl -v
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
若当前为MySQL,建议迁移到MariaDB(CentOS默认仓库提供,兼容性更好):
# 移除旧版本MySQL(若有)
sudo yum remove mysql mysql-server -y
# 添加MariaDB仓库
sudo yum install epel-release -y
sudo yum install mariadb-server -y
# 启动MariaDB
sudo systemctl start mariadb
sudo systemctl enable mariadb
# 安全配置(设置root密码、移除匿名用户等)
sudo mysql_secure_installation
若需升级到特定MySQL版本(如8.0),需添加MySQL官方Yum仓库:
# 下载MySQL Yum仓库
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
# 启用MySQL 8.0仓库
sudo yum-config-manager --enable mysql80-community
# 安装MySQL
sudo yum install mysql-community-server -y
# 启动MySQL
sudo systemctl start mysqld
sudo systemctl enable mysqld
# 安全配置
sudo mysql_secure_installation
升级数据库
升级后运行mysql_upgrade
修复表结构兼容性:
# 登录MySQL
mysql -u root -p
# 执行升级(需输入密码)
mysql_upgrade -u root -p
# 退出
exit
验证版本
mysql -V # MySQL
mariadb -V # MariaDB
PHP升级推荐使用Remi
仓库(提供多版本支持),避免兼容性问题。
# 安装EPEL仓库(依赖)
sudo yum install epel-release -y
# 安装Remi仓库
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y # CentOS 7
# sudo yum install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y # CentOS 8/Stream
以升级到PHP 8.1为例:
# 查看可用PHP模块
yum repolist all | grep remi-php
# 启用PHP 8.1模块
sudo yum-config-manager --enable remi-php81
# 安装PHP及常用扩展
sudo yum install php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-curl -y
# 重启PHP-FPM(若使用FPM)
sudo systemctl restart php-fpm
# 重启Apache
sudo systemctl restart httpd
php -v
创建info.php
测试页面,检查组件是否协同工作:
# 创建测试文件
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
# 通过浏览器访问http://服务器IP/info.php,确认:
# - Apache正常响应(页面显示Apache版本)
# - PHP正常解析(显示PHP版本及模块)
# - MySQL/MariaDB连接正常(若配置了数据库连接测试)
升级完成后,建议删除测试文件:
sudo rm -f /var/www/html/info.php
/var/log/messages
、/var/log/httpd/error_log
、/var/log/mariadb/mariadb.log
等日志,及时排查错误。通过以上步骤,可实现CentOS LAMP环境的稳定升级,保持系统安全性与功能最新性。