今天看了一下Laravel 6.x系列,准备在服务器上部署,结果发现Laravel需要php7.2,我还用的ubuntu 16.04版本,仓库默认php版本是7.0,于是查了一下升级方法。

本来准备是只升级一下php版本,结果发现添加了php源,也没办法拉到php7.2的版本信息。就想着把系统升级到ubuntu 18.04算了,看了各种在线升级方法,均以失败告终,太坑了。

没得办法,要祭出大杀器了。先把网站和数据库备份了,打开阿里云控制台,先停止实例,再选择更换操作系统。

看了一下阿里云的ubuntu镜像,最新的只有18.04,官方都出20.04了,阿里云同步有点慢呀。

重点来了,安装好nginx、php、mysql,结果发现没办法运行,Why?

我本来是用的FTP把备份的nginx配置文件直接拖进去,没法运行,查看了nginx的vhost配置,我的天呀,php sock 居然还是php7.0-fpm.sock,赶紧改了,重启nginx,结果还是不行。

我都有点怀疑是不是我把那个 default 配置给覆盖了,然后,然后我就把nginx卸载了,准备重新安装。

一顿操作:

apt remove nginx
apt install nginx

结果发现没用,配置文件没改,唉我去,怎么回事,想了想,可能是没卸载干净?我就把/etc/nginx/下的配置全删了,再重新安装nginx,悲剧了,nginx都无法启动,因为没有配置文件,心理凉凉啊。

于是赶紧查了一下怎么完全彻底的卸载nginx。

service nginx stop

apt --purge remove nginx

apt --purge remove nginx-common

apt --purge remove nginx-core

apt autoremove

查看与nginx相关的软件:

dpkg --get-selections | grep nginx

再执行一下:

find / -name nginx*

一般还会有缓存的安装包。

apt clean

apt autoclean

apt autoremove

好了执行完以上的所有操作一下,重新安装nginx:

apt install nginx

OK,nginx配置文件回来了。打开/etc/nginx/sites-enabled/default一看。 php 那一栏还是 php7.0-fpm.sock,看来不是我复制错了,是ubuntu 18.04版本没有调整好nginx和php的配置嘛。

把php7.0-fpm.sock 改成 php7.2-fpm.sock 试一下,成功!

这回总算是解决了问题,重新搭建好了网站,一看时间,卧槽,3个小时过去了,晚饭还没吃,赶紧搞点东西垫垫肚子,再来继续我的开发大计。

--End--