升级系统一直都是项大工程。鉴于 Ubuntu Server 一贯的尿性,新 LTS 分支出来之后晾上一年半载的再更新,对自己的心理健康有着莫大的益处。当然就算这样还是免不了要踩坑。
准备工作还是备份,不管是配置还是用户生成内容。然后按正常流程do-release-upgrade
,看情况保留旧配置(建议全翻新)。接下来就是恢复生产环境的事情了。
从apache2
开始。在 18.04 中的 apache2 终于不用再手工添加 http2 模块了,所以也免了从 dev 源拉源码然后自己编译的步骤,但是在启用 http2 之前,还是需要进行设置。首先你不能在 prefork 模式下启用 http2,所以 apache2 要以 event 模式启动,并且启用proxy_fcgi
配合php7.2-fpm
使用。所以赶紧前置代理换 Nginx 吧。
sudo apt install php7.2-fpm sudo a2enconf php7.2-fpm sudo a2dismod mod_prefork php7.2 ##禁用 prefork 模式 sudo a2enmod proxy_fcgi setenvif mod_event ##启用 fastcgi 和 event 模式 sudo systemctl restart apache2.service sudo a2enmod https2 ##启用 HTTP2 sudo systemctl restart apache2.service
切换完成后还需要注意几点:
php_value
等方式控制 php 运行参数,所以上传文件大小限制等需求要在php.ini
中修改;php.ini
在/etc/php/7.2/fpm/
里;ini_set
函数实时改变选项值。关于 php7.2 的改变还有一点,是官方不建议使用php-mcrypt
扩展,当然你还可以从第三方源安装适合的 mcrypt 扩展,但新版的phpMyAdmin
中似乎不再需要它。所以系统更新后暂时没有必要重新安装 mcrypt 了。不过 phpmyadmin 会有一条新报错:
配置文件中的密文(blowfish_secret)太短。
你在谷歌上搜到的前几条中文指南都是让你到/etc/phpmyadmin/config.inc.php
中修改$cfg['blowfish_secret']
那个参数。但实际上,Ubuntu 中这个参数保存在/var/lib/phpmyadmin/blowfish_secret.inc.php
,所以别傻乎乎的添加新行了,到实际位置中改那个参数去。记住密文长度要不小于 32。
其他就没有特别需要写的。以前担心过 DNS 查询方式改为请求本地 53 端口后可能造成问题,但在 vps 上没有出现。剩下的坑大概是 redis,所以目前还有一台 vps 没有更新系统。总体而言升级过程很平稳,只要你不手贱,而且能保证一段非常稳定的网络连接(但你可以用screen
或者服务商提供的网页控制台啊)。然后要解决的就是多年前挖下的大坑:配置文件和网站自动备份系统。别看我喊了那么多年,实际一点都没动手。这次争取尽快开工,也可以避免心脏受到更大的刺激。
开着自动更新的 Debian Testing 表示无所畏惧(然后每次 PHP 大版本更新网站必挂
正因为不是商业网站所以才要瞎折腾啊。
用lNMP一键脚本的懒狗路过(逃