温馨提示×

ubuntu php配置为何报错

小樊
43
2026-09-01 11:54:30
栏目: 编程语言

“Ubuntu 上 PHP 配置报错”这个原因非常多,需要先看你具体的报错信息才能精确定位。不过我可以先给你一份最常见原因 + 排查方法清单,你可以对照看看是哪一种。


一、最常见报错场景

1️⃣ PHP 没装或命令行版本不对

报错示例

Command 'php' not found

php: command not found

✅ 解决:

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

如果你装了多个版本(如 7.4 / 8.1 / 8.2):

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

2️⃣ Apache / Nginx 没启用 PHP

现象

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

✅ Apache:

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

✅ Nginx(常见):

sudo apt install php-fpm

/etc/nginx/sites-enabled/default 中需有:

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

然后:

sudo nginx -t
sudo systemctl restart nginx

3️⃣ php.ini 配置错误

报错示例

PHP Warning:  Unknown: Failed to open stream
PHP Fatal error:  syntax error in php.ini

✅ 检查:

php --ini

常见错误:

  • 少了分号 ;
  • extension= 写错
  • memory_limit 写成了 memory limit

4️⃣ 权限问题(非常常见)

报错

Permission denied

failed to open stream: Permission denied

✅ 解决:

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

5️⃣ PHP 扩展没装

报错

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

✅ 安装扩展:

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

6️⃣ Ubuntu + PHP 8.x 不兼容老代码

报错

Array and string offset access syntax with curly braces is no longer supported

✅ 解决:

  • 升级代码
  • 或降级 PHP(如 7.4)

二、快速自查清单 ✅

请依次执行:

php -v
php -m
php --ini
sudo systemctl status apache2
sudo systemctl status nginx
sudo systemctl status php8.1-fpm

三、你可以这样发给我更准确的信息

如果你愿意,把下面任意一项发出来,我能直接告诉你原因:

  1. 完整报错信息
  2. 你用的:
    • Ubuntu 版本
    • PHP 版本
    • Apache / Nginx
  3. 命令行报错 还是 网页访问报错

你可以直接贴报错内容,我帮你逐行分析。

0