把Yii2部署到AWS Ubuntu的各种问题

1. 使用mysql连接mysql时,无法连接,提醒/tmp/mysql.sock不存在

解决方法:把mysql配置文件中的sock=的内容改成存在的.sock路径即可。
运行sudo ps -ef|grep mysql无法看到使用的配置文件的信息。只能运行mysql --help|grep .cnf查找到默认加载的配置文件顺序,依次查找到存在的配置文件,修改第一个能找到的配置文件的内容,把其中的sock=改为存在的mysql.sock路径,而本系统中存在的mysql.sock路径为/run/mysqld/mysqld.sock

2. 运行./yii

提示/vendor/amphp/amp/lib/functions.php某行代码有错。
解决方法:升级php。系统上的php是php5,要升到php7,也就是直接执行sudo apt-get install php7.0 php7.0-fpm顺便把php-fpm7.0也升级了。

3. 安装php7.0时出现问题

提示
insserv: There is a loop between service nginx and nologin if stoped
insserv: xxx at depth 2
insserv: xxx at depth 1
insserv: Stopping nologin depends on nginx and therefore on system facl' which can not be true!
insserv: exiting now without changing boot order!
update-rc.d: error: insserv rejected the script header
dpkg: error processing the package php7.0
...
Errors were encouontered while processing:
php7.0

从最上面一行看错误的源头,由于service nginx 和 nologin在停止操作时有冲突,导致无法改变insserv,而导致安装错误。这是因为service的配置文件有冲突,配置文件在/etc/init.d中,可以看到nginxnologin,但nologin打开是乱码,只有打开nginx,在其中开头的
###BEGIN INIT INFO
中的
#Required-Stop: $all
中可以看到有$all,这与nologin中的Stop条件冲突,于是。
解决方法:在/etc/init.d/nginx中,把#Required-Stop:里面的$all删去,便可解决该问题。
而其中会有提醒warning
Script 'svnserve' LSB tags and overided
类似的,不管也行,要消除warning,只需要把###BEGIN INIT INFO那部分的内容加到警告的Script中即可,也是在/etc/init.d中。

4. Yii Migration

在使用Yii Migration时发生错误。
Exception 'yii\db\Exception' with message 'could not find driver'
解决方法:安装php-mysql

5. 用火狐访问,出现500错误,HTTP ERROR 500,用360浏览器访问,出现空白页,<body></body>为空

解决方法:把php-fpm换成7.0的。
系统中的php-fpm为5版本,替换成php-fpm7.0即可。同时设置nginx的php配置文件(本机为enable-php.conf该文件在nginx.conf中被include)中fastcgi_pass unix:/xxx/路径和/etc/php/7.0/fpm/pool.d下的www.conf配置文件中的listen = /xxx/一致。该文件由php-fpm创建,要保证该文件的文件权限和nginx的一致。其中修改php-fpm的配置文件中的listen.owner=listen.group=`选项即可修改sock文件的拥有者。

6. 502 Bad Gateway

这说明nginx转向的cgi文件不存在,无法通过.sock文件与php-fpm沟通。这种情况下,有可能是因为php-fpm没有开启,或者是nginx的fascgi_pass路径不对,也有可能是php的sock文件的权限没有设置正确。在配置文件的listen后面,有listen.owner=listen.group=。注意不要被后面的默认设置覆盖了,建议直接修改默认设置。

7. 除了主页外,其他的内容均404错误。

解决办法,在nginx的配置文件中,加入对/的try_files,以做到统一入口,Yii的应用是统一由index.php开始的,类似重定位的功能。
location / {
# Redirect everything that isn't a real file to index.php
try_files $uri $uri/ /index.php?$args;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值