温馨提示×

Ubuntu PHP出错怎么办

小樊
40
2026-07-13 19:51:28
栏目: 编程语言

在 Ubuntu 上碰到 PHP 出错时,可以按下面步骤快速定位和解决。我按“最常见 → 进阶排查”的顺序给你讲。


一、先确认 PHP 是否安装成功

php -v

✅ 看到版本号(如 PHP 8.1.x)说明已安装
❌ 提示 command not found 说明没装或没加入 PATH

安装示例(Ubuntu 20.04/22.04):

sudo apt update
sudo apt install php php-cli

二、查看 PHP 报错信息(最关键)

1️⃣ CLI 模式(命令行)

php your_script.php

直接看终端输出的错误信息。


2️⃣ Web 模式(Apache / Nginx)

✅ 打开 PHP 错误显示

编辑配置文件:

php --ini | grep "Loaded Configuration File"

常见路径:

/etc/php/8.1/apache2/php.ini
/etc/php/8.1/fpm/php.ini

修改以下内容:

display_errors = On
error_reporting = E_ALL

然后重启服务:

sudo systemctl restart apache2
# 或
sudo systemctl restart php8.1-fpm

三、查看 PHP 错误日志(强烈推荐)

1️⃣ 找到日志位置

grep error_log /etc/php/*/*/php.ini

常见路径:

/var/log/apache2/error.log
/var/log/nginx/error.log
/var/log/php_errors.log

2️⃣ 实时查看错误

tail -f /var/log/apache2/error.log

四、常见 PHP 错误 & 解决方法

❌ 1. 500 Internal Server Error

✅ 原因:

  • PHP 语法错误
  • 权限问题
  • PHP 模块缺失

✅ 解决:

tail -f /var/log/apache2/error.log

❌ 2. PHP 文件被下载而不是执行

✅ 原因:Apache / Nginx 没解析 PHP

✅ Apache 解决:

sudo apt install libapache2-mod-php
sudo systemctl restart apache2

✅ Nginx 解决:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}

❌ 3. 缺少扩展(如 mysqli、curl)

sudo apt install php-mysql php-curl php-xml php-mbstring
sudo systemctl restart apache2

❌ 4. 权限错误

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

五、快速自检清单 ✅

  • [ ] php -v 是否正常
  • [ ] display_errors = On
  • [ ] 查看 error.log
  • [ ] PHP 服务是否重启
  • [ ] 文件权限是否正确

六、如果你愿意,我可以直接帮你定位

你可以直接把 错误信息原文截图内容 发给我,比如:

  • 终端报错
  • 浏览器 500 错误
  • Apache / Nginx 日志内容

我可以一步一步帮你修 ✅

0