centos6下nginx+php-fpm无法解析php的配置问题

寒沙胜雪 2016-11-03 01:44:53
安装得是php7,php-fpm和nginx也已安装完毕,登录进centos6的用户deploy也是wheel组下具有sudoers ALL权限的用户,各文件及文件夹也已经chmod 777和chown deploy。
下面是ngnix配置虚拟主机的配置文件内容(其中root目录已经设置上述rwx权限):

server {
listen 80;
index index.php index.html index.htm;
root /home/deploy/apps/xiaopo.me/current/public;
server_name xiaopo.me www.xiaopo.me;

location / {
try_files $uri $uri/ /index.html;
}

location ~ \.php$ {
try_files $uri = 404;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
}


随后在root指定的/home/deploy/apps/xiaopo.me/current/public目录下新建index.php,内容为echo phpinfo();,访问网址一片空白。新建index.html却是可以访问,那么说明php-fpm没有解析php文件,是没有传过去吗?

我用了一些在网上的排查手段,依然无果,遂来论坛求助前辈,谢谢。
****************************************************************************************************************************************************************************************************************************************************************************

排查1:在修改配置文件之后,多次从网上参考配置文件写法,改写文件后多次使用sudo service nginx restart和sudo service php-fpm restart重启nginx、php-fpm也没有效果。

排查2:排除版本问题,php-fpm安装的是php70w-fpm包。

排查3:首先查看php-fpm的监听端口9000是否处于listen状态,发现是监听状态的:

运行sudo netstat -ntpl
结果:
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 6946/php-fpm



排查4:查看相关进程如下

ps -aux
结果:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 2904 884 ? Ss Nov01 0:00 init
root 2 0.0 0.0 0 0 ? S Nov01 0:00 [kthreadd/378775]
root 3 0.0 0.0 0 0 ? S Nov01 0:00 [khelper/378775]
root 169 0.0 0.0 2472 268 ? S<s Nov01 0:00 /sbin/udevd -d
root 595 0.0 0.0 5400 368 ? S<s Nov01 0:00 /root/vpnserver/vpnserver execsvc
root 596 1.1 0.9 31384 4936 ? S<l Nov01 27:50 /root/vpnserver/vpnserver execsvc
root 619 0.0 0.1 8652 584 ? Ss Nov01 0:00 /usr/sbin/sshd
root 673 0.0 0.6 11524 3512 ? Ss Nov01 0:11 /usr/bin/python /usr/bin/ssserver -c /etc/shad
root 696 0.0 0.2 11128 1460 ? Ss Nov01 0:01 /usr/bin/python /usr/bin/ssserver -c /etc/shad
root 718 0.0 0.3 11468 1980 ? Ss Nov01 0:02 /usr/bin/python /usr/bin/ssserver -c /etc/shad
root 6370 0.0 0.6 12144 3448 ? Ss Nov02 0:00 sshd: deploy [priv]
deploy 6372 0.0 0.2 12144 1180 ? S 00:00 0:00 sshd: deploy@pts/0
deploy 6373 0.0 0.2 3160 1524 pts/0 Ss 00:00 0:00 -bash
root 6647 0.0 0.2 3464 1408 pts/0 S 00:41 0:00 su root
root 6648 0.0 0.2 3056 1340 pts/0 S 00:41 0:00 bash
root 6811 0.0 0.1 3072 984 pts/0 S 00:46 0:00 su deploy
deploy 6812 0.0 0.2 3160 1544 pts/0 S 00:46 0:00 bash
root 6919 0.0 0.2 15740 1564 ? Ss 01:16 0:00 nginx: master process /usr/sbin/nginx -c /etc/
nginx 6921 0.0 0.4 15920 2484 ? S 01:16 0:00 nginx: worker process
root 6946 0.0 0.7 161412 3680 ? Ss 01:16 0:00 php-fpm: master process (/etc/php-fpm.conf)
deploy 6948 0.0 0.7 161608 3888 ? S 01:16 0:00 php-fpm: pool www
deploy 6949 0.0 0.7 161608 3904 ? S 01:16 0:00 php-fpm: pool www
deploy 6950 0.0 0.8 161608 4208 ? S 01:16 0:00 php-fpm: pool www
deploy 6982 0.0 0.1 2860 960 pts/0 R+ 01:42 0:00 ps -aux


排查5:测试配置文件写得是否正确

sudo /etc/init.d/nginx configtest
结果:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful



总感觉还是配置文件的问题,但是不知道到底是哪儿写错了,依然不能解析php,望前辈指教。
...全文
1333 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zarte 2017-07-15
  • 打赏
  • 举报
回复
感谢楼上各位,弄了半天是标记的原因。。。。折腾了半天,刚用php7
寒沙胜雪 2016-11-03
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
<? 这是 php 的短标记写法 <?php 才是正规的写法 php7 已经不再支持短标记写法了
引用 7 楼 Just_cl 的回复:
确实,看看短标签是否开启,你的php没有错误日志么~
谢谢前辈,整了半天,原来是我php标签写错了,非常感谢两位前辈,受教了。 再次谢过! 刚开启了日志,还是不太会看,学习中。
Just_cl 2016-11-03
  • 打赏
  • 举报
回复
确实,看看短标签是否开启,你的php没有错误日志么~
Just_cl 2016-11-03
  • 打赏
  • 举报
回复
  location ~ .*\.(php|php5)?$
  {
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  include fastcgi.conf;
  }
include fastcgi.conf,不要引入fastcgi_params,如果没有fastcgi.conf这个文件复制fastcgi.conf.default即可
xuzuning 2016-11-03
  • 打赏
  • 举报
回复
<? 这是 php 的短标记写法 <?php 才是正规的写法 php7 已经不再支持短标记写法了
寒沙胜雪 2016-11-03
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
但是,如果没有配置 php 的话,浏览器访问 php 程序时,会提示下载的
前辈好,你说的这点我也注意到了,并不会下载,难道是我配置成virutal host(server block)的原因吗? 我访问domain/index.php是空白,我右键查看源代码,竟然是PHP源代码。。。比如:

<?
	phpinfo();
?>
我天,咋回事。。。
xuzuning 2016-11-03
  • 打赏
  • 举报
回复
但是,如果没有配置 php 的话,浏览器访问 php 程序时,会提示下载的
寒沙胜雪 2016-11-03
  • 打赏
  • 举报
回复
引用 1 楼 Just_cl 的回复:
项目根目录新建index.php随便输出个什么,直接访问ip/index.php看看是否能访问不能访问说明配置出问题,你nginx -t检测nginx配置对是否安装php没有任何的联系,还有可以看看错误日志,一般能发现问题~
前辈好,我加入了

        error_log /home/deploy/apps/logs/xiaopo.error.log;
        access_log /home/deploy/apps/logs/xiaopo.access.log;
重启nginx、php-fpm之后,访问domain/index.php空白,domain/index.html显示内容。。。 在access.log里面能看到访问日志,但是在error_log中并没有错误日志。。。
Just_cl 2016-11-03
  • 打赏
  • 举报
回复
项目根目录新建index.php随便输出个什么,直接访问ip/index.php看看是否能访问不能访问说明配置出问题,你nginx -t检测nginx配置对是否安装php没有任何的联系,还有可以看看错误日志,一般能发现问题~

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧