PHP-FPM没有生成socket文件

简介: PHP-FPM没有生成socket文件
[global]
pid = run/php-fpm.pid
error_log = log/php-fpm.log
log_level = notice
[www]
listen = /tmp/php-cgi-72.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 100
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 70
request_terminate_timeout = 100
request_slowlog_timeout = 30
slowlog = var/log/slow.log

PHP-FPM启动后,没有生成socket文件。以下为排障过程。

查看php错误日志

[root@VM_0_12_centos log]# tail /usr/local/php/var/log/php-fpm.log 
[06-Sep-2018 09:39:47] NOTICE: fpm is running, pid 407
[06-Sep-2018 09:39:47] NOTICE: ready to handle connections

日志显示一切正常。

查看tmp目录权限

[root@hqidicom ~]# stat -c "%a %n" /tmp
1777 /tmp

/tmp目录权限1777,正常,这里只能是1777,其他的0777什么的都不行,会给系统带来各种问题.

确认当前使用的配置文件

[root@hqidicom ~]# ps aux |grep php |grep master |awk '{print $NF}'
(/usr/local/php/etc/php-fpm.conf)

当前使用的配置文件没问题。

直接搜索 php-cgi.sock 文件

find / -name "php-cgi-72.sock"
/tmp/systemd-private-c9e0943767bc4ef4b3cdb654063f3248-php-fpm.service-GRQqJq/tmp/php-cgi-72.sock

sock文件确实生成了,但不在我们预设的位置,看到“systemd”字样,我就知道肯定又是Lennart Poettering在添乱了。原来他认为/tmp目录不安全,就在/tmp目录里面开了一些单间,让各种程序的socket文件进驻这些单间里面,这样就安全了。。呵呵

最终解决 php-cgi.sock 文件没有按配置生成

1、停止 PHP-FPM 服务

systemctl stop php-fpm.service 

2、将文件/etc/systemd/system/multi-user.target.wants/php-fpm.service 里面PrivateTmp的值改为 false

意思是不给php-fpm开单间,直接坐大厅(/tmp),希望大厅没人抽烟。

3、重新加载 systemd

systemctl daemon-reload 

4、启动php-fpm,并验证

systemctl start php-fpm.service 
[root@hqidicom ~]# ls /tmp |grep php-cgi
php-cgi-72.sock

最后多说一句,/tmp目录下面/tmp/systemd-private 开头的文件,可以用/usr/lib/tmpfiles.d/tmp.conf 来控制其生命周期。


目录
相关文章
|
1月前
thinkphp5.1隐藏index.php入口文件
thinkphp5.1隐藏index.php入口文件
35 0
thinkphp5.1隐藏index.php入口文件
|
22小时前
|
PHP
php 上传大文件获取失败问题
php 上传大文件获取失败问题
4 0
php 上传大文件获取失败问题
|
8天前
|
SQL 监控 安全
代码审计-PHP原生开发篇&SQL注入&数据库监控&正则搜索&文件定位&静态分析
代码审计-PHP原生开发篇&SQL注入&数据库监控&正则搜索&文件定位&静态分析
|
1天前
|
PHP
php+ajax传file文件数据
php+ajax传file文件数据
8 0
|
1天前
|
存储 监控 Java
深入探索Java BIO与NIO输入输出模型:基于文件复制和socket通信
深入探索Java BIO与NIO输入输出模型:基于文件复制和socket通信
4 0
|
1月前
|
安全 PHP 数据库
【PHP开发专栏】PHP文件包含漏洞与防范
【4月更文挑战第30天】本文探讨了PHP文件包含漏洞,该漏洞让攻击者能执行恶意代码或访问敏感信息。文章分为三部分:原理、影响和防范。文件包含函数(如`include`和`require`)在攻击者控制文件名时可能导致漏洞。影响包括执行恶意代码、泄露敏感信息和影响服务器性能。防范措施包括验证文件名安全性、使用安全包含函数、设置安全包含路径和参数,以及定期更新和维护代码及库。开发者应重视此问题,采取相应措施保障应用安全。
php案例:判断这个文件是什么编程语言代码的文件(判断java或者php)
php案例:判断这个文件是什么编程语言代码的文件(判断java或者php)
php案例:判断这个文件是什么编程语言代码的文件(判断java或者php)
|
1月前
|
PHP 数据安全/隐私保护