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環境的穩定升級,保持系統安全性與功能最新性。