准备搭一套Yii的环境,用到NGINX+php-fpm来做后端服务,配好之后一直打不开页面,总是报404,页面找不到。
首先看日志,在nginx的配置文件里配置了access_log和error_log,看到errlog中记录,发现很多如下的报错
百度搜索关键词:Primary script unknown,搜出来的内容基本一样,按照要求,将nginx、php-fpm运行的用户配置成同一个用户,并修改了目录权限,但仍然不行。
后面想到查php-fpm的日志,在php-fpm.conf里配置有error_log配置,但打开一看,只有进程相关的内容。
即使将log_level设置成debug,也没有访问的日志。
最后找到了php-fpm.d/www.conf,在里面看到了access.log的配置,还包含了具体access log的语法,可以记录各种信息
配置access log, 继续访问,在日志看到如下的记录
看起来php-fpm没有解析处脚本文件的路径,看来还是nginx的问题,逐行查看nginx的配置,和yii的文档给出的ngxin配置对比,发现这个地方不太一样,原来我是用的nginx安装包里带的php-fpm的配置,这个地方配置的根本就不对,按照yii文档修改,重启nginx,之后终于好了~
总结: 这是个可以避免的错误,如果直接复制yii文档里nginx的配置,就不会遇到这个问题,但在排查的过程中,也学到了一些nginx和php-fpm的内容,比如php-fpm的访问日志等。
yii的教程:https://www.yiichina.com/doc/guide/2.0
关于nginx报错"Primary script unknown"的检查:https://segmentfault.com/a/1190000018561629?utm_source=tag-newest