在 Ubuntu 下“关闭 PHP 日志”通常分为 PHP 自身错误日志 和 Web 服务器(Apache/Nginx)相关日志 两种情况。下面分别说明。
php --ini
或在 Web 环境下:
php -i | grep "Loaded Configuration File"
常见路径:
/etc/php/8.1/cli/php.ini/etc/php/8.1/apache2/php.ini/etc/php/8.1/fpm/php.ini编辑对应 php.ini:
; 关闭错误显示
display_errors = Off
; 关闭错误日志
log_errors = Off
; 可选:日志路径置空
error_log = ""
# Apache
sudo systemctl restart apache2
# Nginx + PHP-FPM
sudo systemctl restart php8.1-fpm
sudo systemctl restart nginx
如果只是想“不写日志文件”,但不影响运行:
log_errors = Off
⚠️ 不建议在生产环境完全关闭,至少保留:
log_errors = On
error_log = /var/log/php/php-error.log
如果是 Apache + mod_php:
php_flag log_errors off
php_flag display_errors off
sudo nano /etc/apache2/apache2.conf
注释或改为:
# ErrorLog ${APACHE_LOG_DIR}/error.log
然后:
sudo systemctl restart apache2
sudo nano /etc/php/8.1/fpm/php-fpm.conf
; 注释或关闭
; error_log = /var/log/php8.1-fpm.log
sudo nano /etc/nginx/nginx.conf
error_log /dev/null;
sudo systemctl restart nginx
ini_set('log_errors', 0);
ini_set('display_errors', 0);
✅ 推荐做法(生产环境)
display_errors = Off
log_errors = On
error_log = /var/log/php/php-error.log
❌ 完全关闭日志
如果你是 想解决磁盘被日志写满 或 调试时日志太多,可以告诉我具体场景,我可以给你更合适的方案。