php fpm没有';t创建.sock文件
我有一个AWS服务器在AmazonLinux上运行 我使用本指南安装php7(页面底部):php fpm没有';t创建.sock文件,php,centos,php-7,Php,Centos,Php 7,我有一个AWS服务器在AmazonLinux上运行 我使用本指南安装php7(页面底部): 我想使用nginx而不是Apache,所以我还安装了php70wfpm和nginx包。但是,当我服务启动php fpm时,它不会在服务器上的任何位置创建php-fpm.sock文件。我已经签入/var/run,还运行了find/-name“*.sock”,它只返回/var/run/rpcbind.sock编辑:这里真正的解决方案是nginx配置中的监听www.conf和fastcgi\u pass必须匹配
我想使用nginx而不是Apache,所以我还安装了php70wfpm和nginx包。但是,当我
服务启动php fpm
时,它不会在服务器上的任何位置创建php-fpm.sock文件。我已经签入/var/run,还运行了find/-name“*.sock”
,它只返回/var/run/rpcbind.sock编辑:这里真正的解决方案是nginx配置中的监听www.conf
和fastcgi\u pass
必须匹配。是否使用套接字或tcp取决于您
答案是根本不使用.sock
文件
在/etc/php fpm.d/www.conf
中,它有:
所以在我的nginx配置中
而不是使用
我知道太晚了,但也许这能帮上忙。您可以使用Python从头开始创建一个新的锁文件
python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('/run/php/php-fpm.sock')"
如果您的php fpm由systemd
控制,您必须检查php fpm服务单元文件中的PrivateTmp
选项(您可以通过find/etc/systemd-name“php fpm*”!-键入d
)
如果此选项设置为truePrivateTmp=true
,则将为php fpm主进程创建新的文件系统命名空间,默认情况下,其他进程将无法操作此命名空间中的文件(例如nginx)。您可以在此处阅读有关systemdPrivateTmp
选项的更多详细信息:
希望这有帮助 在我的例子中,我错过了/etc/php/7.0/fpm/pool.d/wordpress.conf
正确的部分
[wordpress]
listen = /var/run/php7-fpm-wordpress.sock
*.sock文件不是根据文件名创建的,而是根据节名创建的
请确保您有以下文件夹并且它是可写的。
/var/run/php fpm
然后在你的www.conf
中:
listen=/var/run/php-fpm/php-fpm.sock
然后运行:
sudo服务php fpm重启
然后更新您的nginx.conf
:
fastcgi\u pass unix:/var/run/php-fpm/php-fpm.sock代码>
最后重新启动nginx:
sudo服务nginx重启
我出现了错误,因为我复制粘贴了一个pool.d/xx.conf,而新的pool.d/xx.conf具有相同的pool名称[whatever],所以第二个没有加载。
没有错误,没有套接字
希望这对某人有所帮助:)我遇到了相同的问题-没有创建套接字-和Phil的解决方案相同
我刚刚复制粘贴了一个池文件,只在listen部分更改了套接字名称。没有插座
这是因为池名称已在使用中。如果已经有同名的池,则不会创建新的套接字
因此,为每个套接字指定一个唯一的池名非常重要
因此,在复制/粘贴池配置时:同时更改池名和套接字名 在我的例子中,当将Ispconfig 3.2.2中特定网站的PHP版本示例更改为PHP7.4时,webxx.conf文件应该在/etc/PHP/7.4/fpm/pool.d/
中创建,但它是在根/
中创建的
所以现在我只需将webxx.conf文件迁移到/etc/php/7.4/fpm/pool.d/
并重新启动PHP7.4-fpmsudo systemctl restart PHP7.4-fpm
,它工作正常。fpm配置正确吗,请参阅文件/etc/php5/fpm/pool.d/.conf
文件?我在该文件中找到了答案,它没有指向任何套接字文件。这不是一个真正的答案,只是一个替代解决方案。手头的问题是关于套接字文件的,而不是TCP/IPPP FPM通常更容易在TCP/IP上设置,但因此速度较慢。@尽管如此,套接字只能处理非常小的流量。适用于php7+centos7+nginx^^no。sock文件在服务启动时创建(权限?不确定),不管怎样,这个答案对我帮助很大:哈利路亚在从另一个配置文件复制和粘贴后,我也忘了更改“池名”(你是说“节”)了。如果你在托管多个站点,你需要什么fastcgi_param
?你能重复使用一个插座吗?
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('/run/php/php-fpm.sock')"
[wordpress]
listen = /var/run/php7-fpm-wordpress.sock