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

Már*_*cio 26 php sockets linux nginx amazon-web-services

我正在运行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
Run Code Online (Sandbox Code Playgroud)

但那里没有php-fpm.sock.

我怎么找到php-fpm.sock

我的规格:

  • 亚马逊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)

小智 42

我知道这是一个古老的问题,但由于我现在也有同样的问题,并找到答案,我想我可能会分享它.问题是由于pood.d /目录中的配置.

打开

/etc/php5/fpm/pool.d/www.conf
Run Code Online (Sandbox Code Playgroud)

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

改成

listen = /var/run/php5-fpm.sock
Run Code Online (Sandbox Code Playgroud)

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

  • 我已经设置了这个,文件仍然没有 (3认同)
  • 在其他地方找到了答案!您根本不需要更改“listen = 127.0.0.1:9000”行!!!!我有 php7,你只需在服务器配置文件中使用 `fastcgi_pass 127.0.0.1:9000;` (2认同)

Moh*_*ady 10

检查配置文件,配置路径是/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重启后该文件夹也会消失,服务启动也会失败.

  • 文件夹`/ var/run/php-fpm /`已经创建.但该文件夹中唯一的文件是`php-fpm.pid`.我创建了一个名为`php-fpm.sock`配置nginx和php-fpm的空文件,但没有成功.我认为问题是我没有`.sock`文件.但我怎么能得到它? (2认同)

spe*_*1st 8

7年后我在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:9000TO 更改listen = /var/run/php-fpm/php-fpm.sock

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

- > UNCOMMENT listen.owner = nobodyAND listen.group = nobody

- >命中Esc然后键入:/user =然后i

- >改变user = apacheTOuser = nginx

- >并改为group = apacheTOgroup = nginx

- >点击Esc然后:wq(保存并退出)

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

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

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

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

- >类型 o

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

- >点击 Esc

- >类型:wq (保存和相当的VI编辑器)

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


小智 7

在我的情况下解决了,我看看

sudo tail -f /var/log/nginx/error.log
Run Code Online (Sandbox Code Playgroud)

错误是 php5-fpm.sock not found

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

没有 php5-fpm.sock

我编辑 www.conf  

sudo vim /etc/php5/fpm/pool.d/www.conf
Run Code Online (Sandbox Code Playgroud)

改变

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

为了

listen = /var/run/php5-fpm.sock
Run Code Online (Sandbox Code Playgroud)

并重新启动