如何找到我的php-fpm.sock?

时间:2013-07-10 12:27:12

标签: php linux sockets amazon-web-services nginx

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

经过3天的研究和配置,我成功地完成了它。 我将PHP-FPM配置为通过127.0.0.1:9000运行。但现在我想通过Socket配置。

问题是我在服务器中找不到套接字路径。我刚发现/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

如何找到php-fpm.sock

我的规格:

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

6 个答案:

答案 0 :(得分:37)

我知道这是一个古老的问题,但由于我现在也有同样的问题,并找到答案,我想我可能会分享它。问题是由于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是否已经创建。

答案 1 :(得分:9)

检查配置文件,配置路径为/etc/php5/fpm/pool.d/www.conf,您可以在那里找到配置路径,如果需要,可以更改它。

修改
你是对的,你需要将listen = 127.0.0.1:9000替换为listen = /var/run/php5-fpm/php5-fpm.sock,然后你需要运行sudo service php5-fpm restart,并确保它正确地重新启动,如果没有,那么请确保{ {1}}有一个名为/var/run/的文件夹,或让它听php5-fpm因为我认为/var/run/php5-fpm.sock内的文件夹不是自动创建的,我记得我必须编辑开始用于创建该文件夹的脚本,否则即使重新启动后/var/run该文件夹将消失,服务启动也将失败。

答案 2 :(得分:5)

我在7年后的CentOS上遇到过同样的问题

发布希望它可以帮助别人......

<强>步骤:

FIRST ,配置php-fpm设置:

- &GT; systemctl stop php-fpm.service

- &GT; cd /etc/php-fpm.d

- &GT; ls -hal(应该看到www.conf文件)

- &GT; cp www.conf www.conf.backup(以防万一为准)

- &GT; vi www.conf

- &GT; :/listen =(到达我们需要更改的行)

- &GT; i(进入VI的文本插入模式)

- &GT;从listen = 127.0.0.1:9000更改为listen = /var/run/php-fpm/php-fpm.sock

- &GT; Esc然后:/listen.owner(找到它)然后i(改变)

- &GT;撤销listen.owner = nobodylisten.group = nobody

- &GT;点击Esc,然后点击:/user =,然后点击i

- &GT;将user = apache更改为user = nginx

- &GT;并将group = apache更改为group = nginx

- &GT;点击Esc然后点:wq(保存并退出)

- &GT; systemctl start php-fpm.service(现在你将有一个php-fpm.sock文件)

SECOND ,您在server {}文件中配置了/etc/nginx/nginx.conf块。然后运行:systemctl restart nginx.service

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

- &GT; vi /usr/share/nginx/html/mytest.php

- &GT;输入o

- &GT; <?php echo date("Y/m/d-l"); ?>(PHP页面将在浏览器中打印日期和日期)

- &GT;点击Esc

- &GT;键入:wq(以保存和相当的VI编辑器)

- &GT;打开浏览器并转到:http://yourDomainOrIPAddress/mytest.php (你应该看到打印的日期和日期)

答案 3 :(得分:3)

在我的案例中解决,我看

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

并重新启动

答案 4 :(得分:0)

当您查找php-fpm.conf

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

您将看到,您需要配置PHP FastCGI Process Manager以实际使用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

答案 5 :(得分:0)

当我第一次在centos7上运行LEMP时遇到此问题,请参阅此 post

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

  

http://xxx.xxx.xxx.xxx/info.php现在无法访问。

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

这里可能不需要像Fath的post那样重启系统,只需重新加载nginx和php-fpm。

restart php-fpm

reload nginx config