php-fpm不会创建.sock文件

Kez*_*aia 9 php centos php-7

我有一台在Amazon Linux上运行的AWS服务器.

我使用本指南安装php7(页面底部):https://forums.aws.amazon.com/thread.jspa?messageID = 695576

我想使用nginx而不是Apache,所以我还安装了php70w-fpm和nginx包.但是,当我 service start php-fpm,它不会在我的服务器上的任何地方创建一个php-fpm.sock文件.我已经检入/ var/run并且还运行find / -name "*.sock"了只返回/var/run/rpcbind.sock.

小智 9

  1. 确保您有以下文件夹并且它是可写的。 /var/run/php-fpm

  2. 然后在你的www.conf你放: listen = /var/run/php-fpm/php-fpm.sock

  3. 然后运行: sudo service php-fpm restart

  4. 然后更新你的nginx.conffastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
  5. 最后重启nginx: sudo service nginx restart


Kez*_*aia 7

编辑:这里真正的解决方案是在听www.conffastcgi_pass在nginx的配置必须匹配。使用套接字还是 tcp 取决于您。

答案是根本不使用.sock文件。

/etc/php-fpm.d/www.conf它具有:

listen = 127.0.0.1:9000
Run Code Online (Sandbox Code Playgroud)

所以在我的 nginx 配置中,我把

fastcgi_pass 127.0.0.1:9000;
Run Code Online (Sandbox Code Playgroud)

而不是使用类似的东西

fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
Run Code Online (Sandbox Code Playgroud)

  • 这不是真正的答案,只是一种替代解决方案。手头的问题特别是关于套接字文件,而不是 TCP/IP (40认同)

小智 7

我遇到了同样的问题 - 没有创建套接字 - 以及菲尔拥有的相同解决方案。

我刚刚复制粘贴了一个池文件,并且只更改了监听部分中的套接字名称。没有插座。

这是因为池名称已被使用。当您已经有同名的池时,就不会创建新的套接字。

因此,为每个套接字指定一个唯一的池名称非常重要。

因此,当复制/粘贴池配置时:更改池名称和套接字名称!