我通过运行:
尝试在我的osx上运行php-fpmphp-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'
我有以下文件:
// 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
请注意确定是否有帮助
答案 0 :(得分:0)
php-fpm.conf
位置由选项
--sysconfdir=/path/to
在编译php-fpm之前调用$ ./confugure
时指定的。
通常是/etc
,但在您的情况下可能会有所不同。
调用$ php-fpm -i
会显示传递给configure
的选项。
只需照看Configure Command =>
。
从评论中我发现你找到'--sysconfdir=/private/etc'
所以我会在那里看。
请注意,您可以使用-y
选项调用php-fpm为配置文件指定其他位置。
答案 1 :(得分:0)
由于您提到本地,您必须使用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结尾)。例如。我添加了一个已学习here的listen = /usr/local/var/run/php-fpm.my-username.sock
站点,以便可以为我的站点虚拟服务器使用套接字而不是端口。
我发现这些其他命令很有用:
要查看日志:
tail -f /usr/local/var/log/php-fpm.log
要检查用户的fpm是否启动为:
ps aux | egrep 'php'
并确保使用sudo启动brew服务,如果不小心启动了没有sudo的服务,请务必将其停止:
sudo brew services start php
答案 2 :(得分:0)
在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)