php-fpm在osx上获取其配置值

问题描述 投票:5回答:2

我正在尝试通过运行以下命令在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将该日志文件放到哪里)..似乎有很多配置文件,所以我请参考this question查找我的php-fpm配置文件的位置。所以在我的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 macos fpm
2个回答
1
投票

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

--sysconfdir=/path/to

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

通常为/etc,但根据您的情况可能有所不同。

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

只看Configure Command =>

从评论中,我看到您找到了'--sysconfdir=/private/etc',因此我将在那里查看。


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


1
投票

因为您提到本地,所以您必须使用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.sock的知识,该知识我学会了here,因此可以为我的站点虚拟服务器使用套接字而不是端口。

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

查看日志:

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

检查用户的fpm是否以以下方式启动:

ps aux | egrep 'php'

并且请确保使用sudo启动brew服务,如果您不小心启动了没有sudo的服务,请务必将其停止:

sudo brew services start php

© www.soinside.com 2019 - 2024. All rights reserved.