CentOS环境下LNMP(Linux+Nginx+MySQL/MariaDB+PHP)更新升级指南
升级前务必备份所有重要数据和配置文件,避免操作失误导致数据丢失。
sudo cp -a /etc/nginx /etc/nginx.bakmysqldump -u root -p --all-databases > full-backup.sqlmariadb-dump -u root -p --all-databases > full-backup.sqlsudo cp /etc/php.ini /etc/php.ini.baksudo cp -a /var/www /var/www.bak先更新CentOS系统的基础包,确保后续升级依赖项兼容:
sudo yum update -y # CentOS 7
# 或
sudo dnf update -y # CentOS 8
sudo yum install epel-release -y
sudo yum update nginx -y
sudo dnf update nginx -y
sudo systemctl restart nginxnginx -vcd /usr/src && sudo wget http://nginx.org/download/nginx-<version>.tar.gz(替换<version>为目标版本,如1.25.3)sudo tar zxvf nginx-<version>.tar.gz
cd nginx-<version>
sudo ./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf # 保持与原配置一致
sudo make
sudo make install
sudo systemctl restart nginxmysqldump -u root -p --all-databases > full-backup.sqlmariadb-dump -u root -p --all-databases > full-backup.sqlsudo yum remove mysql mysql-server -ysudo yum remove mariadb-server mariadb -ysudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm -y
sudo yum update mysql-community-server -y
sudo dnf install https://dev.mariadb.org/get/mariadb80-community-release-el8-1.noarch.rpm -y
sudo dnf update mariadb-server -y
sudo systemctl start mysqld(MySQL)或sudo systemctl start mariadb(MariaDB)sudo mysql_secure_installation(设置root密码、移除匿名用户等)mysql -u root -p -e "SELECT VERSION();"mariadb -u root -p -e "SELECT VERSION();"sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -ysudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -ysudo yum install yum-utils -y
sudo yum-config-manager --enable remi-php80 # CentOS 7
# 或
sudo dnf config-manager --enable remi-php80 # CentOS 8
sudo yum update php php-mysqlnd php-fpm -ycd /usr/src && sudo wget https://www.php.net/distributions/php-<version>.tar.gz(替换<version>为目标版本,如8.1.12)sudo tar zxvf php-<version>.tar.gz
cd php-<version>
sudo ./configure --prefix=/usr/local/php --with-config-file-path=/etc/php.ini --enable-fpm --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd # 保持与原配置一致
sudo make
sudo make install
sudo cp php.ini-production /etc/php.inisudo systemctl restart php-fpmphp -v
sudo systemctl status nginx(确保运行正常)sudo systemctl status mysqld(MySQL)或sudo systemctl status mariadb(MariaDB)sudo systemctl status php-fpm(若使用PHP-FPM)删除下载的安装包和源码目录,释放磁盘空间:
cd /usr/src
sudo rm -rf nginx-*.tar.gz php-*.tar.gz # 删除Nginx和PHP源码包
注意事项:
sudo yum deplist <package>检查依赖关系;