首页 文章

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

提问于
浏览
20

我正在运行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

我的规格:

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

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

  • 8

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

    EDIT
    你是对的,你需要将 listen = 127.0.0.1:9000 替换为 listen = /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 将消失,服务启动也会失败 .

  • 2

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

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

    Steps:

    首先,配置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 (改变)

    • UNCOMMENT listen.owner = nobody AND listen.group = nobody

    • 点击 Esc 然后输入 :/user = 然后 i

    • 更改 user = apache TO 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服务器通过Internet浏览器进行测试 .

    • vi /usr/share/nginx/html/mytest.php

    • 输入 o

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

    • 点击 Esc

    • 输入 :wq (保存和相当的VI编辑器)

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

  • 35

    在我的情况下解决,我看

    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
    

    并重新启动

  • 0

    当你查找 php-fpm.conf

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

    您将看到,您需要配置PHP FastCGI Process Manager以实际使用Unix套接字 . 默认情况下, listen directive`设置为侦听一个端口上的TCP套接字 . 如果有's no Unix socket defined, you won' t找到一个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
    
  • 1

    我第一次在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

相关问题