我正在运行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
?
我的规格:
答案 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 = nobody
和listen.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)