为了不影响主机运作,新建了一个docker容器安装
命令:
docker run -it -v /docker:/docker -p 8080:80 --name=laravel_1 daocloud.io/library/ubuntu:latest /bin/bash
然后安装git
一开始用的是12.10的镜像,后来发现apt-get的时候总是404,查了一下发现是因为12已经不再提供更新了。ubuntu虽说是开源系统,版本更迭带来的兼容性问题比windows还大的感觉。总之是换了latest的后就没有问题了
apt-get install git
,一切顺利
顺带一提这镜像没安装sudo,apt-get一个就是
然后装php,apt-get install php7.0
,中间会出现选择地区和时区,我分别选择了亚太/上海。装好后输入php -v查看版本即可检查是否安装成功
然后装mysql,apt-get install mysql-server mysql-client
,中途貌似出现了一些unable,但是没有影响。接下来service mysql start
即可。按照之前的经验在安装的时候应该有叫设定账户密码啥的,而且服务名应该是mysqld,不清楚什么情况,反正能用
然后装nginx。sudo apt-get install nginx
。但是似乎没成功,切换出去看看Ctrl+P+Q
,netstat -ap | grep 8080
,有点奇怪,切回来docker exec -it laravel_1 /bin/bash
,发现没安装netstat,apt-get install net-tools
(没错netstat包是找不到的,要安装net-tools),一番折腾发现毫无问题,然后百度了一下,发现可能是自己阿里云的安全配置问题,赶紧打开阿里云控制台加上了8080的安全组规则,搞定
有点问题,nginx没配置好php支持
nginx只是分发服务到php-fpm中让其启动php,故需要安装php-fpm并使nginx支持它
于是按照教程更改配置文件
原理
教程
sudo vim /etc/nginx/sites-available/default
进入配置文件,修改前最好进行备份
修改完如图
当然,我随后就为我的粗心付出了代价——nginx无法启动。图中有两处错误,一是最后一项忘记了加分号,一处是最后一项应为fastcgi_params。当出现nginx无法启动时,可以通过
nginx -t
检查配置文件的正确性在这之后访问我的主机ip:8080便成功进入了nginx的欢迎页面,说明启动成功
为了验证php是否安装成功,我上传了一个info.php,里面是phpinfo函数。然而当我输入网址时,却出现了502的错误标识
发现502,自然会想是后端宕机了。检查php文件无异常,于是怀疑nginx依然没有配置好
检查nginx错误日志。nginx错误日志的地址在nginx.conf中有,而如何找到nginx.conf可以使用find命令find / -name nginx.conf
查看错误日志发现如下错误
复制其到百度查询,发现两种解决方案
解决方案一
解决方案二
无论是哪种解决方案,都指向同一个问题——php-fpm依然没有配置好
于是查询我的电脑里fpm是否正常运作,我选择通过查阅端口占用的方式——fpm默认监听9000端口。运行命令
netstat -ap | grep fpm
,结果空无一物,说明我的电脑里压根没有fpm再看上面的教程,才发现虽然都说php后面的版本默认在核心处带有fpm,实际上需要自己安装。于是我为了从头再来打算卸载php,教程。我使用了这句命令
sudo aptitude purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
卸载后,apt-get install php
,然后apt-get install php7.2-fpm
安装过程中出现了一句错误提示ubuntu php7 You are seeing this message because you have apache2 package installed.
,为此需要卸载掉我的容器内莫名其妙出现的apache包,参考这里,使用以下命令即可完全卸载
sudo apt-get purge apache2
sudo apt autoremove
sudo apt autoclean
搞定之后,查看服务service --status -all
,发现fpm并没有启动,手动启动即可service php7.2-fpm start
然后我按照上面说的教程二修改了www.conf文件(同样可以使用find命令查找),打不开的看图
修改后,我如愿看到了phpinfo的页面,搞定
随后修改root
成功进入laravel首页
出现500
检查artisan
出现pdo
有些其他的ddl到了,之后再回来更新