Linux记录18-4.52 php-fpm使用socket配置

修改PHP服务时使用IP和端口 为 使用 socket 

 

 

fastcgi_pass  记录的就是php服务的IP和端口

如果没填对PHP服务的IP和端口,访问PHP的网站的时候就会显示502。

 

查看nginx的错误日志 tail  /var/log/nginx/error.log  会有记录。

 

/usr/local/php-fpm/etc/php-fpm.conf 打开php服务主配置文件,大部分语句是 ; 注释的,最后一行有个include 指明补充配置目录。

 

在include路径下,有个一开始配置时候拷贝的www.conf ,最后生效的是这个配置文件。

 

编辑这个补充配置文件www.conf  

[www]是我们自定义的池名,叫做pool name 。就是叫做 www 的这个php池

 

pool name会出现在查询进程里面

ps aux最左边显示的就是服务的用户名。

www.conf 里user和group是php-fpm服务启动的用户名和组名 ,

 

www.conf 里  listen 写的是php=fpm 服务监听的IP和端口

这个监听也可以改成是socket文件的形式,

PHP配置文件里注释用          

   nginx配置文件里注释用  #

 

PHP也支持  -t  验错

 

PHP    restart 重启

PHP    reload 重载

重载以后可见socket文件存在了,是粉红色的,文件类型是 s

文件权限660 : rw-    rw-    - - -

 

修改nginx配置文件去使用socket文件

nginx配置文件是用 # 注释, PHP配置文件是用 ; 注释

 

保存后刷新网页仍然显示502,重新查看错误日志,出错原因是 permission denied 意思是没有权限。这种情况 文件没权限,服务没权限

 

vi    /usr/local/php-fpm/etc/php-fpm.d/www.conf  修改  php补充配置文件  中的对于socket文件设置。

(可以在vi一般模式中用 /mode 快速搜索定位)

listen.mode 设置socket文件的监听权限

listen.owner 设置socket文件的监听属主

listen.group 设置socket文件的监听属组

socket的监听权限改为0666 ,实际上权限一直是4位数,但是一般第一位是目录的权限大部分都是0,所有之前我们写的都是3位。

 

restart 重启PHP刷新socket文件

可见重新生成以后的 www.socket 变了权限

这次刷新页面则可以显示了。

 

 

为什么listen.mode = 0660时候会显示失败?

现在php的 fastcgi_pass 已经是变成  www.socket文件  了,所以必须要有读写这个文件的权限。

socket文件权限是0660则表示:

0对应目录   6对应属主   6对应属主    0对应其他用户 。

 

而nginx需要用 php 这个服务,可以看见nginx的进程的用户名是nginx

socket文件现在有读写权限的是root用户和root组,并没有nginx,所以nginx被认为是属于在其他用户里,而其他用户改之前的权限是0 。

 

通过这个道理可以明白,

或者把www.conf 中的  listen.owner  和  listen.group  改成  nginx  也能实现读写权限   

(虽然他们现在写的是php-fpm但是是被注释情况,实际上默认的是root)

修改后

ls查看 , www.socket 属主和属组,已变成了nginx

刷新网页,可以显示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值