如何find我的php-fpm.sock?

我正在运行Wordpress:Nginx + PHP-FPM + APC + W3 Total Cache + PageSpeed。

经过3天的研究和configuration,我成功地使它工作。 我configuration了PHP-FPM通过127.0.0.1:9000运行。 但是现在我想通过Socket进行configuration。

问题是,我无法find我的服务器的套接字path。 我刚刚发现/var/run/php-fpm/php-fpm.pid ,但php-fpm.sock不在那里。

运行whereis php-fpm的输出是:

 php-fpm: /usr/sbin/php-fpm /etc/php-fpm.d /etc/php-fpm.conf /usr/share/man/man8/php-fpm.8.gz 

但是那里没有任何php-fpm.sock

我怎样才能findphp-fpm.sock

我的规格:

  • 亚马逊微EC2
  • Linux版本3.4.48-45.46.amzn1.x86_64 Red Hat 4.6.3-2(我认为它基于CentOS 5)
  • PHP 5.3.26(fpm-fcgi)

我知道这是老问题,但是因为我现在也有同样的问题,并且找到了答案,我想我可以分享它。 问题是由于在pood.d /目录中的配置。

打开

 /etc/php5/fpm/pool.d/www.conf 

 listen = 127.0.0.1:9000 

改成

 listen = /var/run/php5-fpm.sock 

之后重新启动nginx和php5-fpm服务,并检查是否已经创建了php5-fpm.sock。

检查配置文件,配置路径是/etc/php5/fpm/pool.d/www.conf ,在那里你可以通过配置找到路径,如果你想要,你可以改变它。

编辑
那么你是正确的,你需要更换listen = 127.0.0.1:9000listen = /var/run/php5-fpm/php5-fpm.sock ,那么你需要运行sudo service php5-fpm restart ,并确保它说它重新启动正确,如果没有,那么确保/var/run/有一个名为php5-fpm的文件夹,或者让它监听/var/run/php5-fpm.sock因为我不认为里面的文件夹/var/run是自动创建的,我记得我不得不编辑启动脚本来创建这个文件夹,否则即使你重启后mkdir /var/run/php5-fpm文件夹会消失,启动服务也会失败。

七年后,我在CentOS上面对同样的问题

发布希望它可以帮助其他人…

脚步:

首先 ,配置php-fpm设置:

– > systemctl stop php-fpm.service

– > cd /etc/php-fpm.d

– > ls -hal (应该看一个www.conf文件)

– > cp www.conf www.conf.backup (备份文件以防万一)

– > vi www.conf

– > :/listen = (到我们需要改变的那一行)

– > i (进入VI的文本插入模式)

– >从listen = 127.0.0.1:9000更改为listen = /var/run/php-fpm/php-fpm.sock

– > Esc然后:/listen.owner (找到它)然后i (改变)

– >注意listen.owner = nobodylisten.group = nobody线

– >打Esc然后键入:/user =然后i

– >将user = apache更改user = apache user = nginx

– >并改变group = apache TO group = nginx

– >命中Esc然后:wq (保存并退出)

– > systemctl start php-fpm.service (现在你将拥有一个php-fpm.sock文件)

第二 ,你在/etc/nginx/nginx.conf文件中配置你的server {}块。 然后运行: systemctl restart nginx.service

最后 ,在你的/ usr / share / nginx / html目录下创建一个新的.php文件,供你的Nginx服务器通过互联网浏览器进行测试。

– > vi /usr/share/nginx/html/mytest.php

– > type o

– > <?php echo date("Y/m/dl"); ?> <?php echo date("Y/m/dl"); ?> (PHP页面将在浏览器中打印日期和日期)

– >打Esc

– >输入:wq (保存并完成VI编辑)

– >打开浏览器并转到: http://yourDomainOrIPAddress/mytest.php (您应该看到打印的日期和日期)

解决我的情况,我看

 sudo tail -f /var/log/nginx/error.log 

和错误是php5-fpm.sock未找到

我看看sudo ls -lah /var/run/

没有php5-fpm.sock

我编辑www.conf

 sudo vim /etc/php5/fpm/pool.d/www.conf 

更改

 listen = 127.0.0.1:9000 

对于

 listen = /var/run/php5-fpm.sock 

并重新启动

当你查找你的php-fpm.conf

 example location: cat /usr/src/php/sapi/fpm/php-fpm.conf 

你会看到,你需要配置PHP FastCGI进程管理器来实际使用Unix套接字。 默认情况下, listen指令设置为侦听一个端口上的TCP套接字。 如果没有定义的Unix套接字,则不会找到一个Unix套接字文件。

 ; The address on which to accept FastCGI requests. ; Valid syntaxes are: ; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on ; a specific port; ; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on ; a specific port; ; 'port' - to listen on a TCP socket to all IPv4 addresses on a ; specific port; ; '[::]:port' - to listen on a TCP socket to all addresses ; (IPv6 and IPv4-mapped) on a specific port; ; '/path/to/unix/socket' - to listen on a unix socket. ; Note: This value is mandatory. listen = 127.0.0.1:9000 

当我第一次在centos7上运行LEMP时遇到这个问题请参考这篇文章

我重新启动nginx来测试phpinfo页面,但得到这个

http://xxx.xxx.xxx.xxx/info.php现在无法访问&#x3002;

然后我使用tail -f /var/log/nginx/error.log来查看更多信息。 我发现是不存在的php-fpm.sock文件。 然后我重新启动系统,一切正常。

这里可能不需要重新启动系统为Fa​​th的文章 ,只需重新加载nginx和php-fpm即可。

重新启动php-fpm

重新加载nginx配置