在 CentOS 上,PHP 日志路径的配置位置取决于你使用的 PHP 运行方式(CLI、PHP-FPM、Apache mod_php)。下面分情况说明。
配置文件一般在:
/etc/php-fpm.conf
/etc/php-fpm.d/www.conf
设置错误日志:
php_admin_value[error_log] = /var/log/php-fpm/php-error.log
php_admin_flag[log_errors] = on
或直接在 php.ini 中:
error_log = /var/log/php-fpm/php-error.log
log_errors = On
mkdir -p /var/log/php-fpm
chown -R apache:apache /var/log/php-fpm
systemctl restart php-fpm
vi /etc/php.ini
log_errors = On
error_log = /var/log/httpd/php_error.log
chown apache:apache /var/log/httpd/php_error.log
systemctl restart httpd
CLI 使用独立 php.ini:
php --ini
通常是:
/etc/php.ini
或
/etc/php-cli.ini
配置:
log_errors = On
error_log = /var/log/php-cli.log
php -i | grep error_log
或在 PHP 代码中:
echo ini_get('error_log');
SELinux 开启时可能拒绝写日志
setsebool -P httpd_can_network_connect on
semanage fcontext -a -t httpd_log_t "/var/log/php-fpm(/.*)?"
restorecon -Rv /var/log/php-fpm
log_errors 必须开启,否则不写日志
error_log 路径必须存在且可写
如果你能告诉我:
我可以给你精确可用的配置示例。