升級LNMP(Linux, Nginx, MySQL, PHP)服務器是一個相對復雜的過程,需要仔細操作以避免數據丟失或其他問題。以下是詳細的升級步驟:
備份數據:在進行任何系統升級之前,首先要備份所有重要數據,包括數據庫、配置文件和網站文件。
sudo cp -r /etc/php /etc/php_backups
sudo cp -r /etc/nginx/conf.d /etc/nginx/conf.d_backups
sudo cp -r /var/www /var/www_backup
更新軟件包列表:確保你擁有最新的軟件包信息。
sudo apt update
查看可用的PHP版本:查看可用的PHP版本,以便選擇你想要升級到的版本。
sudo apt list --upgradable | grep php
下載并解壓新版本的Nginx源碼:
wget http://nginx.org/download/nginx-1.20.1.tar.gz
tar -zxvf nginx-1.20.1.tar.gz
cd nginx-1.20.1
配置并編譯安裝:
./configure --prefix=/usr/local/nginx --user=www-data --group=www-data --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_ssl_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_v3_module
make
sudo make upgrade
備份原Nginx文件:
sudo mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx-old
將新生成的Nginx執行文件復制到Nginx/sbin下:
sudo cp objs/nginx /usr/local/nginx/sbin/nginx
檢測配置文件是否正確:
sudo /usr/local/nginx/sbin/nginx -t
執行升級:
sudo make upgrade
重啟Nginx服務:
sudo systemctl restart nginx
下載并解壓新版本的PHP源碼:
wget http://cn2.php.net/distributions/php-7.4.29.tar.gz
tar -zxvf php-7.4.29.tar.gz
cd php-7.4.29
配置并編譯安裝:
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-apxs2=/usr/local/nginx/sbin/apxs --with-openssl --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-zlib --with-iconv --with-mcrypt --with-mysqli --with-pdo-mysql --with-gettext --with-xsl --with-xmlrpc --with-json --with-snmp --with-ctype --enable-mbstring --enable-sockets --enable-zip --enable-soap --enable-bcmath --enable-pcntl --enable-ftp --enable-exif --enable-calendar --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-gettext --with-xsl --with-xmlrpc --with-json --with-snmp --with-ctype --enable-mbstring --enable-sockets --enable-zip --enable-soap --enable-bcmath --enable-pcntl --enable-ftp --enable-exif --enable-calendar --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx
make
sudo make install
備份原PHP配置文件:
sudo cp /usr/local/php/etc/php.ini /usr/local/php/etc/php.ini.old
編輯PHP配置文件:
sudo nano /usr/local/php/etc/php.ini
重啟PHP-FPM服務:
sudo systemctl restart php7.4-fpm
下載并解壓新版本的MySQL源碼:
wget http://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.28-linux-glibc2.12-x86_64.tar.gz
tar -zxvf mysql-8.0.28-linux-glibc2.12-x86_64.tar.gz
cd mysql-8.0.28-linux-glibc2.12
配置并編譯安裝:
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=1 -DWITH_ZLIB=1 -DWITH_EMBEDDED_SERVER=1
make
sudo make install
初始化MySQL:
sudo /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql
配置MySQL:
sudo cp support-files/mysql.server /etc/init.d/mysql
sudo chkconfig --add mysql
sudo chkconfig --level 2345 mysql on
重啟MySQL服務:
sudo service mysql restart
檢查Nginx版本:
nginx -v
檢查PHP版本:
php -v
檢查MySQL版本:
mysql -v
測試網站:
sudo systemctl reload nginx
訪問你的網站,檢查是否有任何錯誤或問題。
清理緩存:
sudo apt-get clean
sudo systemctl restart php7.4-fpm
sudo systemctl restart nginx
以上步驟提供了一個基本的LNMP服務器升級流程。請注意,具體的升級步驟可能會因不同的Linux發行版、Nginx、MySQL和PHP版本而有所差異。在執行升級之前,建議詳細閱讀相關版本的官方文檔,并在測試環境中先行驗證升級步驟。