今天在新服务器上部署网站访问php文件,结果发现404服务器是腾讯云的免费服务器。Centos7.2+php7.1.7+nginx1.12.1安装lnmp关键安装包不是编译安装的。安装完成后,在/usr/local/nginx/conf/vhost中添加配置文件,配置文件内容如下:server{listen80;根/home/wwwroot/站点;indexindex.phpindex.htmlindex.htm;#charsetkoi8-r;access_log/home/wwwlogs/site.access.logmain;error_log/home/wwwlogs/site.error.log警告;#将服务器错误页面重定向到静态页面/50x.html##error_page500502503504/50x.html;location=/50x.html{root/usr/share/nginx/html;}#将PHP脚本传递给侦听127.0.0.1:9000的FastCGI服务器#location~\.php($|/){fastcgi_split_path_info^(.+\.php)(/.+)$;fastcgi_pass127.0.0.1:9000;fastcgi_read_timeout150;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;fastcgi_paramSCRIPT_NAME$fastcgi_script_name;总的来说是没有问题的,然后执行下面命令重启nginxservicenginxrestart然后访问我放的网站根目录下的php文件提示404,郁闷死了,文件明明存在,怎么找不到!是不是根目录设置错了?直接在根目录放一个html文件,访问一下,200,就可以访问了!那么问题就很明显了,这应该是配置文件中php的问题!或者是php-fpm的问题但是我没有配置错误日志。我先在配置文件里配置错误日志,测试一下,看有没有报错!看到报错我惊呆了!请看下面:[error]32520#0:*1open()"/usr/share/nginx/html/50x.html"failed(2:Nosuchfileordirectory)怎么会这样,应该是爆了500errors,但找不到50x.html文件,并出现404错误。然后我添加了这个50x.html文件。访问后显示50x.html文件,然后错误日志显示如下:[error]344#0:*1connect()failed(111:Connectionrefused)whileconnectingtoupstream,connectionfailed?怎么会?这里的链接应该是nginx配置文件中配置的链接和php-fpm的配置链接。配置文件应该没问题,所以检查下php-fpm是否已经启动!ps-辅助|grepphp显示正常,如图:说明php-fpm已经启动,查看9000端口是否打开:netstat-ant|grep9000没有输出,也就是说9000端口没有打开,也就是会所php-fpm没有占用900端口,然后查看php-fpm.conf,查看里面的代码,如图图:看到这里,问题就很明显了,就是没有监听9000端口,所以nginx配置中监听的9000当然会失败,只需要修改这句话,如下:listen=9000and然后执行命令servicenginxrestart重启nginxservicephp-fpmrestart重启php-fpm测试看看,一切OK!,没有更多的错误!
