我正在尝试通过运行以下命令在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'
并且我有以下文件:
// 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.conf
位置由选项决定
--sysconfdir=/path/to
在编译php-fpm之前调用$ ./confugure
时指定。
通常为/etc
,但根据您的情况可能有所不同。
调用$ php-fpm -i
将显示传递给configure
的选项。
只看Configure Command =>
。
从评论中,我看到您找到了'--sysconfdir=/private/etc'
,因此我将在那里查看。
请注意,您可以使用-y
选项调用php-fpm为配置文件指定其他位置。
因为您提到本地,所以您必须使用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