温馨提示×

为什么ubuntu php报错

小樊
48
2026-10-16 03:31:27
栏目: 编程语言

Ubuntu 上 PHP 报错的原因非常多,不能一句话说清,但通常可以分成几类。下面我按「最常见原因 → 排查方法 → 解决思路」给你一个清晰清单,你可以对照看是哪一种。


一、最常见的 Ubuntu PHP 报错原因

1️⃣ PHP 没装 / 命令找不到

报错示例

php: command not found

原因

  • 没安装 PHP
  • 或 PATH 没包含 php

解决

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

2️⃣ Apache / Nginx 没启用 PHP

症状

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

Apache

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

Nginx

sudo apt install php-fpm

并配置:

fastcgi_pass unix:/run/php/php8.1-fpm.sock;

3️⃣ PHP 版本不兼容

报错示例

Parse error: syntax error, unexpected ...

或

This package requires PHP >= 8.1

原因

  • 代码用了新语法
  • 系统 PHP 太老

查看版本

php -v

换版本(示例 8.1)

sudo apt install php8.1
sudo update-alternatives --set php /usr/bin/php8.1

4️⃣ 缺少 PHP 扩展

报错示例

Class 'PDO' not found
Call to undefined function mb_strlen()

解决

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

5️⃣ 权限问题(最常见之一)

报错

Permission denied
failed to open stream

原因

  • www-data 无权访问文件
  • 项目在 /home 下

解决

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

6️⃣ php.ini 配置问题

常见问题:

  • display_errors = Off
  • upload_max_filesize 太小
  • memory_limit 太低

查看 php.ini 位置

php --ini

开启错误显示(开发环境)

display_errors = On
error_reporting = E_ALL

7️⃣ SELinux / AppArmor(较少但存在)

Ubuntu 一般不是 SELinux,但 AppArmor 可能限制:

sudo aa-status

二、如何快速定位你的具体错误?

请告诉我 以下信息之一,我可以精准帮你:

  1. 完整报错内容(复制粘贴)
  2. 运行方式:
    • 命令行 php xxx.php
    • 浏览器访问
  3. Ubuntu 版本 + PHP 版本
  4. Web 服务器(Apache / Nginx)

三、一句话总结

Ubuntu 上 PHP 报错,90% 是:没装扩展、版本不对、权限错、Web 服务没配 PHP。

你可以把报错贴出来,我可以直接告诉你是哪一条、怎么改。

0 踩