LNMP 从 1.4 升级到 1.5

前篇文章写了 Forece 的服务器宕机,各种方法都试了,也包括试着升级LNMP,不过网上写的都是1.x升级到1.4的,没有1.5的教程。其实照猫画虎直接把代码稍微改一下就可以了。另外顺道 Forece 也把自己的PHP升级到了7.2,。网上看了下评测,PHP 7.2 打开 WordPress 的速度竟然要比 5.4 至少快2倍。前几天正好看到 PHP 低版本有安全隐患的新闻。顺道升级了。

直接用 putty 连接服务器,然后输入下方代码:

wget -c http://soft.vpser.net/lnmp/lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./upgrade1.x-1.5.sh

然后就等着就好了。升级很快。

顺便附上 LNMP 官方的附件升级手册:

一般情况下不建议对生产环境进行升级,升级开始后会停止LNMP相关服务。
本文仅适用于LNMP1.2、1.3及1.4等以后版本!

在LNMP目前LNMP v1.2/1.3+版本中已经包含了Nginx、MySQL/MariaDB、PHP、PHPMyAdmin的升级脚本,可以帮助搭建对环境中的程序进行升级。(注意:以下操作均必须在lnmp安装包压缩包解压后的目录里运行,一般是在 /root/lnmp版本号)

一、Nginx升级脚本

执行:./upgrade.sh nginx 按提示输入版本号后回车(访问 http://nginx.org/en/download.html 可查找nginx的最新版本号和以往旧版本号。如:1.6.0 ),再次回车确认即可开始升级Nginx。如要升级到1.9.5或更高版本必须使用v1.3或更改版本里面的升级脚本。Nginx升级为平滑升级,升级过程不影响nginx的运行。

另外如需添加其他模块可以编辑lnmp.conf 配置文件,在 Nginx_Modules_Options 参数的引号里加其他需要的参数(一般添加第三方模块的话是--add-module=/第三方模块源码目录)。

lnmp 1.2版修改include/upgrade_nginx.sh文件
在Nginx_Modules_Arguments="" 参数的双引号里添加需要的其他模块,多个模块参数空格隔开,然后再运行升级即可。

二、MySQL升级脚本

虽然脚本会备份数据,但依然建议先自行备份!
执行:./upgrade.sh mysql 需要先输入MySQL root密码进行验证,验证不通过将无法进行升级,验证通过后可以到http://dev.mysql.com/downloads/mysql/ 获取MySQL的版本号,输入后回车确认,如要启用Innodb,输入y,不确定的话也可以输入输入y 回车确认,再次回车确认即可开始升级。会在/root 目录下生成mysql_upgrade日期.log的日志文件,供出错时排查。

如升级失败恢复:(1.4及更高版本)将/usr/local/oldmysql日期目录下面的init.d.mysql.bak.日期的文件拷贝到/etc/init.d/目录下并重命名为mysql及将my.cnf.bak.日期拷贝到/etc/目录下并重命名为 my.cnf,并将/usr/local/oldmysql日期目录重命名为mysql即可恢复mysql。(下面MySQL升级至MariaDB及升级MariaDB一样)

(1.3及以下版本)将/etc/下的my.conf.bak.日期的配置文件重命名为my.cnf和/etc/init.d/下的mysql.bak.日期重命名为mysql,同时将/usr/local/下的oldmysql日期目录重命名为mysql即可恢复。

三、MySQL升级至MariaDB脚本

MariaDB是MySQL的一个分支,主要由开源社区在维护。MariaDB兼容MySQL,由MySQL创始人主导开发。依然建议先自行备份!
执行:./upgrade.sh m2m 需要先输入MySQL root密码进行验证,验证不通过将无法进行升级,验证通过后可以到https://downloads.mariadb.org/ 获取MariaDB的版本号,输入后回车确认,如要启用Innodb,输入y,不确定的话也可以输入输入y 回车确认,再次回车确认即可开始升级。会在/root 目录下生产mysql2mariadb_upgrade日期.log的日志文件,供出错时排查。
如升级失败恢复:(1.4及更高版本)将/usr/local/mysql2mariadb日期目录下面的init.d.mysql2mariadb.bak.日期的文件拷贝到/etc/init.d/目录下并重命名为mysql及将my.cnf.mysql2mariadbbak.日期拷贝到/etc/目录下并重命名为 my.cnf,并将/usr/local/下的mysql2mariadb日期目录重命名为mysql即可恢复mysql。

(1.3及以下版本)将/etc/下的my.conf.bak.日期的配置文件重命名为my.cnf和/etc/init.d/下的mariadb.bak.日期重命名为mariadb,同时将/usr/local/下的oldmariadb日期目录重命名为mariadb即可恢复。

四、MariaDB升级脚本

依然建议先自行备份!
执行:./upgrade.sh mariadb 需要先输入MariaDB root密码进行验证,验证不通过将无法进行升级,验证通过后可以到https://downloads.mariadb.org/ 获取MariaDB的版本号,输入后回车确认,如要启用Innodb,输入y,不确定的话也可以输入输入y 回车确认,再次回车确认即可开始升级。会在/root 目录下生产mariadb_upgrade日期.log的日志文件,供出错时排查。
如升级失败恢复:(1.4及更高版本)将/usr/local/oldmariadb日期目录下面的init.d.mariadb.bak.日期的文件拷贝到/etc/init.d/目录下并重命名为mariadb及将my.cnf.bak.日期拷贝到/etc/目录下并重命名为 my.cnf,并将/usr/local/下的oldmariadb日期目录重命名为mariadb即可恢复mariadb。

(1.3及以下版本)将/etc/下的my.conf.bak.日期的配置文件重命名为my.cnf和/etc/init.d/下的mariadb.bak.日期重命名为mariadb,同时将/usr/local/下的oldmariadb日期目录重命名为mariadb即可恢复。

五、LNMP PHP升级脚本

升级PHP前,请确认你的网站程序是否支持升级到的PHP版本,防止升级到网站程序不兼容的PHP版本,具体可以去你使用的PHP程序的官网查询相关版本支持信息。v1.3及以后版本大部分情况下也可以进行降级操作。
执行:./upgrade.sh php 到http://www.php.net/downloads.php 获取版本号,输入版本号,如5.3.28 回车,再次回车确认即可开始升级。

如需要编译其他参数可以,lnmp 1.3及以后版本版可以修改lnmp.conf配置文件里的 PHP_Modules_Options 参数的引号里加其他需要的参数。

lnmp 1.2版修改include/upgrade_php.sh文件
在PHP_Modules_Arguments="" 参数的双引号里添加需要的其他模块,多个模块参数空格隔开,然后再运行升级即可。

升级完PHP如果phpmyadmin可能会无法使用,需要升级phpmyadmin至对于php和mysql版本的phpmyadmin版本。

如果升级失败可下载并压缩 /root/upgrade_lnmp_php日期.log 日志去https://bbs.vpser.net 论坛进行反馈。

如果要恢复原PHP,将 /usr/local/ 下 oldphp日志 的目录重命名为 php 并,将/usr/local/oldphp日期/init.d.php-fpm.bak.日期 的文件拷贝到/etc/init.d/ 目录下重命名为 php-fpm 即可恢复。

六、LNMPA/LAMP PHP升级脚本

升级PHP前,请确认你的网站程序是否支持升级到的PHP版本,防止升级到网站程序不兼容的PHP版本,具体可以去你使用的PHP程序的官网查询相关版本支持信息。
执行:./upgrade.sh phpa 到http://www.php.net/downloads.php 获取版本号,输入版本号,如5.3.28 回车,再次回车确认即可开始升级。
升级完PHP如果phpmyadmin可能会无法使用,需要升级phpmyadmin至对于php和mysql版本的phpmyadmin版本。

七、PHPMyAdmin升级脚本

升降级前建议去https://www.phpmyadmin.net/downloads/ 查看PHPMyAdmin版本号兵确认与PHP和MySQL的兼容性。
执行:./upgrade.sh phpmyadmin 输入PHPMyAdmin版本号,回车确认,再次回车确认即可自动完成升级。