Ubuntu 上 PHP 报错的原因非常多,不能一句话说清,但通常可以分成几类。下面我按「最常见原因 → 排查方法 → 解决思路」给你一个清晰清单,你可以对照看是哪一种。
报错示例
php: command not found
原因
解决
sudo apt update
sudo apt install php-cli
php -v
症状
.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;
报错示例
Parse error: syntax error, unexpected ...
或
This package requires PHP >= 8.1
原因
查看版本
php -v
换版本(示例 8.1)
sudo apt install php8.1
sudo update-alternatives --set php /usr/bin/php8.1
报错示例
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
报错
Permission denied
failed to open stream
原因
解决
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
常见问题:
display_errors = Offupload_max_filesize 太小memory_limit 太低查看 php.ini 位置
php --ini
开启错误显示(开发环境)
display_errors = On
error_reporting = E_ALL
Ubuntu 一般不是 SELinux,但 AppArmor 可能限制:
sudo aa-status
请告诉我 以下信息之一,我可以精准帮你:
php xxx.phpUbuntu 上 PHP 报错,90% 是:没装扩展、版本不对、权限错、Web 服务没配 PHP。
你可以把报错贴出来,我可以直接告诉你是哪一条、怎么改。