欢迎访问宙启技术站
智能推送

php fpm开启错误日志的方法

发布时间:2023-05-17 08:54:26

php fpm作为PHP FastCGI Process Manager,常用于运行PHP网站,可通过命令行或配置文件开启错误日志以方便排查问题。下面介绍php fpm开启错误日志的方法。

一、命令行开启错误日志

在运行php fpm时,可以通过命令行参数来开启错误日志。在启动php fpm时加上--log-level参数即可开启错误日志,示例如下:

php-fpm --fpm-config /etc/php-fpm.conf --log-level warning

其中--log-level参数指定了日志记录的级别,常用的有debug,notice,warning,error,critical,alert,emergency等级别。在调试过程中,可以将其设置为debug以详细记录各种信息,例如:

php-fpm --fpm-config /etc/php-fpm.conf --log-level debug

二、配置文件开启错误日志

在php fpm的配置文件中,也可以配置错误日志的路径和级别。一般配置文件位于/etc/php-fpm.conf或/etc/php-fpm.d/www.conf,示例如下:

; 通用配置
error_log = /var/log/php-fpm/error.log
log_level = warning

; 指定设备目录下的www.conf配置,此处仅列举error_log和log_level部分
[www]
error_log = /var/log/php-fpm/www-error.log
log_level = warning

其中error_log指定了错误日志文件路径,log_level指定了日志记录的级别,其他级别可参考上面的命令行参数。

需要注意的是,根据上面的配置,需要手动创建/var/log/php-fpm目录及其子目录,并授权给www-data用户(或运行php fpm的用户)。命令如下:

sudo mkdir -p /var/log/php-fpm
sudo chown -R www-data:www-data /var/log/php-fpm

或者使用其他合适的用户和权限。

三、使用systemd控制php fpm进程

使用systemd控制php fpm进程时,需要创建systemd service文件来设置错误日志。示例如下:

[Unit]
Description=The PHP FastCGI Process Manager
After=nginx.service

[Service]
Type=simple
PIDFile=/run/php/php-fpm.pid
ExecStart=/usr/sbin/php-fpm -D -y /etc/php-fpm.conf --allow-to-run-as-root --nodaemonize --force-stderr
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
PrivateTmp=true
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

其中ExecStart指定了php fpm命令及参数,--force-stderr参数强制将错误日志输出到系统日志,而不是标准输出或标准错误输出。需要注意的是,此时需要通过syslog来查看错误日志,例如:

tail -f /var/log/syslog | grep php-fpm

四、总结

开启php fpm错误日志是排查PHP网站问题的基本步骤。不同的环境可以选择不同的方法和级别来记录错误日志,如需更详细记录调试信息,可将日志级别设置为debug。