php-fpm 在哪里获取其在 osx 上的配置值
where is php-fpm getting its config values on osx
我正在尝试 php-fpm 在我的 osx 上 运行ning:
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 where the log file should go).. there seems to be many configuration files, so I refer to 找到我的 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-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
最多 MAC OS Catalina 这个 one-liner 有效:
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)
我正在尝试 php-fpm 在我的 osx 上 运行ning:
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 where the log file should go).. there seems to be many configuration files, so I refer to 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.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
最多 MAC OS Catalina 这个 one-liner 有效:
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)