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
中,可以看到nginx
和nologin
,但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;
}