温馨提示×

ubuntu php日志报错怎办

小樊
44
2026-09-21 17:37:59
栏目: 编程语言

在 Ubuntu 上 PHP 日志报错,一般按下面思路处理和排查:


一、先找到 PHP 错误日志在哪

1. 查看 php.ini 配置

php --ini

常见位置:

  • /etc/php/8.1/cli/php.ini
  • /etc/php/8.1/fpm/php.ini

查看日志相关配置:

grep -E "error_log|log_errors|display_errors" /etc/php/*/*/php.ini

关键参数:

log_errors = On
error_log = /var/log/php/php_errors.log
display_errors = Off   # 生产环境建议 Off

2. 常见 PHP 运行方式的日志位置

PHP-FPM(最常见,Nginx/Apache)

/var/log/php8.1-fpm.log
/var/log/nginx/error.log

或:

/var/log/apache2/error.log

CLI 模式

php your_script.php

错误直接输出到终端,或写 error_log 指定文件。


二、常见 PHP 报错及处理

1. Permission denied(权限问题)

failed to open stream: Permission denied

解决:

sudo chown -R www-data:www-data /var/www/your_project
sudo chmod -R 755 /var/www/your_project

2. Module not found

Class 'xxx' not found

可能是:

  • 没装扩展
sudo apt install php8.1-mysql php8.1-curl php8.1-mbstring
  • 没开扩展
sudo phpenmod mbstring
sudo systemctl restart php8.1-fpm

3. 内存不足

Allowed memory size exhausted

解决:

memory_limit = 256M

或临时:

php -d memory_limit=512M script.php

4. PHP 版本不兼容

php -v

必要时切换版本:

sudo update-alternatives --config php

三、开启详细错误(调试用)

display_errors = On
error_reporting = E_ALL

改完重启:

sudo systemctl restart php8.1-fpm
sudo systemctl restart nginx

四、快速排查流程(推荐)

  1. 看错误日志
tail -f /var/log/php/php_errors.log
  1. 根据报错关键词搜索
  2. 确认权限 / 扩展 / 配置
  3. 改完重启服务

如果你愿意,可以把具体的报错内容或**Ubuntu + PHP 版本 + Web 服务(Nginx/Apache)**发出来,我可以直接帮你定位。

0