今天再ubuntu16.4下部署dedecms时遇到了nginx一直报错404的问题,这里做个记录;
解决问题的历程:
1:查看代码执行权限
使用chwon 和 chmod做了用户改变和权限配置---------------无效;
2:检查nginx配置文件nginx.conf 和 xxx.conf 都没问题;
3:这时候想起查看日志了,进入/var/log/nginx 目录下 查看运行日志 没有错误信息;
4:查看我的web程序日志 cat /var/log/nginx/xxx.error.log 这个是nginx配置文件里的程序日志路径;终于在这里找到了错误;
这里报错:连接9000端口失败
2018/11/07 15:15:58 [error] 12594#12594: *28 connect() failed (111: Connection refused) while connecting to upstream, client: t: 182.149.162.xx se, server: r: 47.97.190.xx, re, request: "GET /T /index.php HTT HTTP/1.1", upstream: "fastcgi://://127.0.0.1:9000", h", host: ": "47.97.190.xx:9090" 2018/11/07 15:15:58 [error] 12594#12594: *28 open() "/var/www/51toyou/ou/50x.html" fa" failed (2: No such file or directory), client: t: 182.149.162.xx, se, server: r: 47.97.190.xx, re, request: "GET /T /index.php HTT HTTP/1.1", upstream: "fastcgi://://127.0.0.1:9000", h", host: ": "47.97.190.xx:9090" |
于是我检查php-fpm是不是没有启动:service php-fpm status 发现php-fpm在启动中
再检查端口监听:netstat-ant|grep9000 结果让我很惊讶 9000端口居然没有被占用
于是我检查php-fpm的配置文件 /etc/php5/fpm/php-fpm.conf 在这个文件里面找到了 监听配置
listen = /var/run/php5-fpm.sock
注:如果这个文件里面没找到listen 那么看下是否有 include引用 再定位到引用的目录下 可能引用目录为
include=/etc/php5/fpm/pool.d/*.conf
在/etc/php5/fpm/pool.d/ 目录下 有一个www.conf
打开这个配置文件发现 lisent的监听为
listen = /var/run/php5-fpm.sock
把这句改为: listen = 127.0.0.1:9000
重启php-fpm 再重启nginx 问题解决