【问题标题】:where is php-fpm getting its config values on osxphp-fpm 在哪里获取 osx 上的配置值
【发布时间】:2017-12-30 11:50:29
【问题描述】:

我正在尝试在我的 osx 上运行 php-fpm:

php-fpm -t

我得到这个错误:

[30-Dec-2017 13:36:12] ERROR: failed to open error_log (/usr/var/log/php-fpm.log): No such file or directory (2)
[30-Dec-2017 13:36:12] ERROR: failed to post process the configuration
[30-Dec-2017 13:36:12] ERROR: FPM initialization failed

我没有该文件,也无法创建它 - 即使使用 sudo:

$:/usr $ sudo mkdir var
Password:
mkdir: var: Operation not permitted

所以我的下一个大动作是在 php-fpm 配置中找到这个日志文件目录设置的确切位置(这样我就可以decide 日志文件应该去哪里).. 似乎有很多配置文件,所以我在查找我的 php-fpm 配置文件的位置时参考了this question。所以在我的php -i 文件的输出中我有这个:

'--sysconfdir=/usr/local/etc/php/7.1'

我有以下文件:

php-fpm.conf

// can't be coming from this file
// b/c this is telling me it's /usr/local/var/log/php-fpm.log

; If it's set to "syslog", log is sent to syslogd instead of being written
; into a local file.
; Note: the default prefix is /usr/local/var
; Default Value: log/php-fpm.log

那么它来自哪里?

当我运行这个时:

which php-fpm
/usr/sbin/php-fpm

注意确定是否有帮助

【问题讨论】:

  • php-fpm -i 的输出说明了什么? (注:不是php -i
  • @MattGibson it'--sysconfdir=/private/etc'.. 让我从这里拿走

标签: php macos homebrew fpm


【解决方案1】:

php-fpm.conf位置由选项决定

--sysconfdir=/path/to

在编译 php-fpm 之前调用 $ ./confugure 时指定。

通常是/etc,但在您的情况下可能会有所不同。

调用$ php-fpm -i 将显示传递给configure 的选项。

请照看Configure Command =>

从 cmets 中我看到您找到了 '--sysconfdir=/private/etc',所以我会在那里查找。


请注意,您可以调用 php-fpm,使用 -y 选项为配置文件指定不同的位置。

【讨论】:

    【解决方案2】:

    因为你提到本地你必须使用Homebrew,所以 php-fpm 配置文件位于:

    /usr/local/etc/php/7.4/php-fpm.conf

    www 池配置位于:

    /usr/local/etc/php/7.4/php-fpm.d/www.conf

    注意路径版本号以后会改变。

    您可以将自己的配置放在与 www.conf 相同的文件夹中(它们必须以 .conf 结尾才能包含在内)。例如。我添加了一个具有listen = /usr/local/var/run/php-fpm.my-username.sockhere,因此我可以为我的站点虚拟服务器使用套接字而不是端口。

    我发现这些其他命令很有用:

    查看日志:

    tail -f /usr/local/var/log/php-fpm.log

    检查用户 fpm 启动为:

    ps aux | egrep 'php'

    请务必使用 sudo 启动 brew 服务,如果您不小心启动了没有 sudo 的服务,请务必停止它:

    sudo brew services start php

    【讨论】:

    • 经过几个小时的挫折,这个答案正是我所需要的!我很难找到 Mac/Homebrew 的解决方案。谢谢!
    【解决方案3】:

    在 MAC OS Catalina 之前,这种单行代码可以正常工作:

    lsof -Pni4 | grep LISTEN | grep php

    输出:

    php-fpm   93649 asrar    9u  IPv4 0xd7c340d64c780f97      0t0  TCP 127.0.0.1:9073 (LISTEN)
    
    php-fpm   94392 asrar    9u  IPv4 0xd7c340d64c780f97      0t0  TCP 127.0.0.1:9073 (LISTEN)
    
    php-fpm   94393 asrar    9u  IPv4 0xd7c340d64c780f97      0t0  TCP 127.0.0.1:9073 (LISTEN)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多