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环境的稳定升级,保持系统安全性与功能最新性。