记录四年以来最大的一次系统升级
从昨天晚上开始,经历了这几年来系统最大的一次升级。连续跨越三个大的系统版本。因为当时的朦胧状态,选择了ubuntu 14.10作为主运行系统,然而噩梦就这样开始了,由于ubuntu 14.10为非长期支持系统,只在短暂的2014年使用过后就不在提供支持了,这样就导致了后面这几年的艰辛历程。从一开始的apt源失效,到慢慢一点一点源码编译修复apt依赖关系,曾在2015、2016年试图尝试升级,可是当时的apt关系依赖是错乱的,这就导致了系统一升级马上就整个操作系统都启动不起来了。于是一直用着可怜的14.10版本。
经过这几年的不断软件源码编译,系统apt的依赖关系也逐渐减少,恢复到正常的软件依赖。于是昨天又尝试了升级一次,居然成功了,而且连续升级三个版本,无错误。总结了一下可能最大的原因是自己曾经手动源码升级了一次linux内核。从ubuntu 14.10升级到15.04,然后从15.04升级到15.10,最终从15.10升级到长期支持版本16.04,值得庆贺,为了少做无用功,每次升级之后测试半个小时,没有大的系统问题就做快照备份,看来这次是选择对了。
升级到16.04之后最大的问题就是php版本的问题。
php版本建议加入分支版本的源:
sudo add-apt-repository ppa:ondrej/php
因为此时已经通过apt可能装了多个版本的php,这就导致了切换的问题。下面的方式可以切换不同的版本.
# 禁用 Apache 中的 PHP7
sudo a2dismod php7
# 启用 PHP5.6
sudo a2enmod php5.6
# 重启 Apache
sudo systemctl restart apache2.service
# 切换 CLI
sudo update-alternatives --set php /usr/bin/php5.6
# 禁用 Apache 中的 PHP5
sudo a2dismod php5.6
# 启用 PHP7
sudo a2enmod php7
# 重启 Apache
sudo systemctl restart apache2.service
# 切换 CLI
sudo update-alternatives --set php /usr/bin/php7.0
另外一个恼人的问题就是php7下对于PHPMailler的兼容性有问题,发送邮件的时候报错,smtp链接失败。经过各种搜索,发现原来是ssl的问题,很少有人提到。。。。。。这点真是无语了,踩坑踩了是个多小时。。。。
在使用PHPMailler类的时候,要多写几行代码加入对于ssl的验证,这点很重要。比如QQ邮箱腾讯企业邮箱等,都要加入这个配置,否则一定出错。
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);