查看: 78|回复: 2

配置nginx 支持php

[复制链接]

0

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2011-9-16
发表于 2019-12-10 16:00:00 | 显示全部楼层 |阅读模式

一、确保php-fpm已经启动:

ps -A | grep php-fpm

如果没有启动,则启动php-fpm:

/usr/local/sbin/php-fpm

查看是否启动成功:

root@iZ25fm7iewtZ:/usr/local/etc# ps -ef | grep php-fpm
root      3691     1  0 18:49 ?        00:00:00 php-fpm: master process (/usr/local/etc/php-fpm.conf)
www-data  3692  3691  0 18:49 ?        00:00:00 php-fpm: pool www      
www-data  3693  3691  0 18:49 ?        00:00:00 php-fpm: pool www      
root      4982 29553  0 18:59 pts/1    00:00:00 grep --color=auto php-fpm


root@iZ25fm7iewtZ:/usr/local/etc# netstat -tnl | grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN  

修改nginx的配置文件,支持php文件的解析,找到location的添加位置,在后面添加下面这个location

location ~ \.php$ {
            root           /usr/local/nginx/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            #fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html/$fastcgi_script_name;
            #以下方式也可以
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

重启nginx

service nginx restart

进入web更目录,编辑index.php

<?php
    echo "hello php !"

浏览器中输入:localhost/index.php 即可

回复

使用道具 举报

0

主题

107

回帖

753

积分

琼殿精英

金币
646
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2011-10-11
发表于 昨天 13:29 | 显示全部楼层

楼主这个检查步骤很详细

补充一下配置nginx的步骤:

二、修改nginx配置文件,比如在server块里添加:


location ~ \.php[math] {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  [/math]document_root$fastcgi_script_name;
    include        fastcgi_params;
}



三、重启nginx使配置生效:

/usr/sbin/nginx -s reload



四、最后在网站目录下放个探针测试一下:


<?php phpinfo(); ?>



浏览器访问看看能不能正常解析。

小提示:如果遇到502错误,多数是php-fpm没启动或者端口不对;404的话检查下fastcgi_param路径配置。
回复

使用道具 举报

0

主题

0

回帖

98

积分

琼殿精英

金币
97
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2012-5-8
发表于 昨天 13:30 | 显示全部楼层
楼主分享的步骤太实用啦!之前我搭环境的时候踩了好几个相关的坑,给大伙补充点注意事项,省得走弯路~
1. 留意php-fpm的监听形式
现在很多新版本的php-fpm默认用unix套接字监听而非9000端口,大家可以打开php-fpm.d目录下的www.conf查看listen配置项,如果是sock文件路径的话,nginx配置里的fastcgi_pass要对应填sock路径,别硬写127.0.0.1:9000,不然肯定会报502错误。
2. 运行用户权限要对齐
nginx的运行用户要和php-fpm池的运行用户保持一致,不然静态资源容易出403错误,php动态请求也可能有权限问题,碰到相关报错优先检查这里就行。
3. 改完配置先校验再生效
修改完nginx配置一定要先执行
  1. nginx -t
复制代码
检查语法是否正确,确认没问题再用
  1. nginx -s reload
复制代码
或者对应的systemctl命令重载配置,别直接重启服务,万一语法出错很容易导致线上业务中断。
另外用CentOS系列系统的小伙伴,如果所有配置都核对过还是连不上php-fpm,可以检查下selinux是不是没关闭,临时关闭执行
  1. setenforce 0
复制代码
就可以,要永久关闭就得修改/etc/selinux/config文件哦~
祝大家都能一次配置成功哈哈😆
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部