温馨提示×

ubuntu php日志如何设置

小樊
44
2026-08-20 08:55:30
栏目: 编程语言

在 Ubuntu 上设置 PHP 日志,主要涉及 PHP-FPMApache/Nginx + PHP 两种常见场景。下面按常见情况给你一个完整说明。


一、PHP 日志类型说明

PHP 日志一般分为两类:

  1. PHP 错误日志(php error log)
    • 记录 PHP 本身的错误、警告、Fatal Error 等
  2. 应用日志(业务日志)
    • 通过 error_log()file_put_contents() 等写入

二、Ubuntu 下 PHP 日志配置文件位置

Ubuntu 默认使用 PHP-FPM,配置文件通常在:

/etc/php/8.x/

其中 8.x 可能是 8.18.28.3 等。

常见目录结构:

/etc/php/8.x/
├── cli/php.ini
├── fpm/php.ini
├── fpm/pool.d/www.conf

三、设置 PHP 错误日志(推荐方式)

1️⃣ 修改 php.ini

编辑 PHP-FPM 的 php.ini

sudo nano /etc/php/8.x/fpm/php.ini

重点修改以下参数:

display_errors = Off
log_errors = On
error_reporting = E_ALL
error_log = /var/log/php/php_error.log

✅ 生产环境建议 display_errors = Off


2️⃣ 创建日志目录并设置权限

sudo mkdir -p /var/log/php
sudo chown www-data:www-data /var/log/php
sudo chmod 755 /var/log/php

3️⃣ 重启 PHP-FPM

sudo systemctl restart php8.x-fpm

四、PHP-FPM 单独日志(pool 日志)

PHP-FPM 还可以在 pool 配置中单独设置日志。

编辑:

sudo nano /etc/php/8.x/fpm/pool.d/www.conf

添加或修改:

php_admin_value[error_log] = /var/log/php/www_error.log
php_admin_flag[log_errors] = on

重启:

sudo systemctl restart php8.x-fpm

五、Apache + PHP 的情况

如果你使用的是 Apache + mod_php:

sudo nano /etc/php/8.x/apache2/php.ini

设置同上:

log_errors = On
error_log = /var/log/php/php_error.log

然后重启 Apache:

sudo systemctl restart apache2

六、Nginx + PHP-FPM 日志关系

类型 日志位置
Nginx 访问日志 /var/log/nginx/access.log
Nginx 错误日志 /var/log/nginx/error.log
PHP 错误日志 /var/log/php/php_error.log

⚠️ Nginx 不会直接记录 PHP 错误


七、测试 PHP 日志是否生效

创建测试文件:

<?php
error_log("This is a test PHP error log");
undefined_function();

访问该页面后查看日志:

tail -f /var/log/php/php_error.log

八、CLI 模式 PHP 日志(命令行)

CLI 使用不同配置:

php -i | grep "Loaded Configuration File"

通常是:

/etc/php/8.x/cli/php.ini

CLI 日志一般输出到 stderr,或单独设置 error_log


九、常见问题排查

❓ 日志不生成

  • 确认 log_errors = On
  • 确认日志文件权限
  • 确认修改的是 正确的 php.ini
  • 重启 PHP-FPM / Apache

查看当前加载的 php.ini:

phpinfo();

十、推荐生产环境配置 ✅

display_errors = Off
log_errors = On
error_reporting = E_ALL & ~E_NOTICE
error_log = /var/log/php/php_error.log

如果你愿意,可以告诉我:

  • ✅ Ubuntu 版本
  • ✅ PHP 版本
  • ✅ Web 服务器(Nginx / Apache)

我可以给你一份 完全针对你环境的配置方案

0