如何找到我的php-fpm.sock?
我运行Wordpress时使用的是:Nginx+PHP-FPM+APC+W3总缓存+页面速度 经过3天的研究和配置,我成功地使它工作。 我将PHP-FPM配置为通过127.0.0.1:9000运行。但现在我想通过套接字进行配置 问题是我在服务器中找不到套接字路径。我刚刚发现如何找到我的php-fpm.sock?,php,linux,sockets,amazon-web-services,nginx,Php,Linux,Sockets,Amazon Web Services,Nginx,我运行Wordpress时使用的是:Nginx+PHP-FPM+APC+W3总缓存+页面速度 经过3天的研究和配置,我成功地使它工作。 我将PHP-FPM配置为通过127.0.0.1:9000运行。但现在我想通过套接字进行配置 问题是我在服务器中找不到套接字路径。我刚刚发现/var/run/php-fpm/php-fpm.pid,但是php-fpm.sock不在那里 运行whereis php fpm输出为: php-fpm: /usr/sbin/php-fpm /etc/php-fpm.d /
/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
我的规格:
- 亚马逊微EC2
- Linux版本3.4.48-45.46.amzn1.x86_64 Red Hat 4.6.3-2(我认为它基于CentOS 5)
- PHP 5.3.26(fpm fcgi)
/etc/php5/fpm/pool.d/www.conf
,在那里您可以按配置找到路径,如果需要可以更改
编辑:好吧,你是正确的,你需要将
listen=127.0.0.1:9000
替换为listen=/var/run/php5 fpm/php5 fpm.sock
,然后你需要运行sudo服务php5 fpm restart
,并确保它正确重启,如果没有,那么确保/var/run/
有一个名为php5 fpm
的文件夹,或者让它听/var/run/php5 fpm.sock
,因为我不认为/var/run
中的文件夹是自动创建的,我记得我必须编辑启动脚本来创建该文件夹,否则,即使重新启动后您mkdir/var/run/php5 fpm
,该文件夹也将消失,服务启动将失败。我知道这是老问题,但由于我刚才也遇到了同样的问题并找到了答案,我想我可能会分享它。问题是由于pood.d/目录中的配置造成的
打开
发现
改为
listen = /var/run/php5-fpm.sock
之后重新启动nginx和php5 fpm服务,并检查php5-fpm.sock是否已经创建。7年后,我在CentOS上遇到了同样的问题 发帖希望它能帮助别人 步骤: 首先,配置php fpm设置: ->
systemctl停止php fpm.service
->cd/etc/php fpm.d
->ls-hal
(应查看www.conf文件)
->cp www.conf www.conf.backup
(备份文件以防万一)
->vi www.conf
example location:
cat /usr/src/php/sapi/fpm/php-fpm.conf
->:/listen=
(要进入我们需要更改的行)
->i
(进入VI的文本插入模式)
->从listen=127.0.0.1:9000更改为listen=/var/run/php fpm/php fpm.sock
->Esc
然后:/listen.owner
(查找)然后i
(更改)
->取消注释listen.owner=nobody
和listen.group=nobody
行
->按Esc键,然后键入:/user=
然后键入i
->将user=apache
更改为user=nginx
->并将group=apache
更改为group=nginx
->点击Esc
,然后点击:wq
(保存并退出)
->systemctl启动php fpm.service
(现在您将拥有一个php-fpm.sock文件)
其次,在/etc/nginx/nginx.conf
文件中配置服务器{}
块。然后运行:systemctl重新启动nginx.service
最后,在/usr/share/nginx/html目录中为nginx服务器创建一个新的.php文件,作为测试通过internet浏览器提供
->vi/usr/share/nginx/html/mytest.php
->键入o
->
(PHP页面将在浏览器中打印日期和日期)
->点击电子稳定控制系统Esc
->键入:wq
(保存并编辑)
->打开浏览器并转到:http://yourDomainOrIPAddress/mytest.php
(您应该看到打印的日期)当您查找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页面,但是
现在不是遥不可及
然后我使用tail-f/var/log/nginx/error.log
查看更多信息。我发现是
php-fpm.sock文件不存在。然后我重新启动系统,一切正常
这里可能不需要像Fath那样重新启动系统,只需重新加载nginx和php-fpm
解决了我的问题,我看
sudo tail -f /var/log/nginx/error.log
错误是找不到php5-fpm.sock
我看sudols-lah/var/run/
没有php5-fpm.sock
我编辑了www.conf
改变
listen = 127.0.0.1:9000
为了
重新启动在我的“www.conf”中配置为“listen=127.0.0.1:9000”。没有任何sockt路径。。。如果我在那个文件中配置“/var/run/php fpm/php fpm.sock”,并将这个patsh放在“nginx.conf”中,我会得到“Bad Gatway”(我想这是因为“/var/run/php fpm/php fpm.sock”不在那里),文件夹/var/run/php fpm/
已经创建好了。但该文件夹中唯一的文件是phpfpm.pid
。我创建了一个名为php fpm.sock
configure nginx和php fpm的空文件,但没有成功。我想问题是我没有.sock
文件。但是我怎样才能得到它呢?好的,让我澄清一下,sock文件不是你创建的文件,当服务成功启动时,它会创建文件,你是否尝试像我说的那样启动服务?尝试运行sudo服务php5 fpm status
它可能会说它没有运行,您是否检查了错误日志
sudo vim /etc/php5/fpm/pool.d/www.conf
listen = 127.0.0.1:9000
listen = /var/run/php5-fpm.sock