温馨提示×

ubuntu php为何报错

小樊
48
2026-09-04 12:36:33
栏目: 编程语言

“Ubuntu 上 PHP 报错”这个问题比较宽泛,我需要先说明常见原因分类,再给你排查方法。如果你能贴出具体报错信息,我可以更精准地帮你定位。


一、Ubuntu 上 PHP 常见报错原因

1️⃣ PHP 未安装或命令找不到

报错示例:

php: command not found

原因:

  • 没安装 PHP
  • 或 PHP 不在 PATH 中

解决:

sudo apt update
sudo apt install php-cli
php -v

2️⃣ Apache / Nginx 无法解析 PHP

现象:

  • 浏览器直接下载 .php 文件
  • 或页面显示 PHP 源码

原因:

  • PHP 模块未启用
  • Web 服务器未配置 PHP

Apache 解决:

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

Nginx 解决:

sudo apt install php-fpm

并在 nginx 配置中:

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

3️⃣ PHP 版本不兼容

报错示例:

Parse error: syntax error, unexpected '?' in ...

原因:

  • 使用了 PHP 7.4+ 语法,但系统是 PHP 5.x / 7.0

解决:

php -v
sudo apt install php8.1

4️⃣ 缺少 PHP 扩展

报错示例:

Class 'mysqli' not found

解决:

sudo apt install php-mysql
sudo systemctl restart apache2

常见扩展:

  • php-mysql
  • php-curl
  • php-mbstring
  • php-xml
  • php-zip

5️⃣ 文件权限问题

报错示例:

Permission denied

解决:

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

6️⃣ PHP 错误被隐藏

现象:

  • 页面空白

解决(开发环境): 编辑 php.ini

display_errors = On
error_reporting = E_ALL

二、如何快速定位问题

请执行以下命令并贴出结果:

php -v
which php
sudo systemctl status apache2
sudo systemctl status nginx

以及:

  • ✅ 使用 Apache 还是 Nginx?
  • ✅ PHP 文件内容示例
  • 完整报错信息(非常重要)

三、总结一句话

Ubuntu 上 PHP 报错,90% 是:没装 PHP / 没配 Web 服务 / 缺扩展 / 版本不对

如果你愿意,把具体报错截图或文字发给我,我可以直接告诉你改哪里 ✅

0