在 Debian 上运行 PHP 出现报错,一般可以按下面步骤来定位和解决。你可以先告诉我具体的报错信息(终端输出、网页报错、日志内容),我可以更精准帮你。下面先给你一套通用排查思路。
php test.php
常见错误:
Command not foundPHP Fatal errorClass not foundextension missingFile not found403 Forbiddenphp -v
如果提示 command not found:
sudo apt update
sudo apt install php-cli
php -l 文件名.php # 检查语法
php 文件名.php
编辑 php.ini(找配置文件):
php --ini
常见位置:
/etc/php/8.2/cli/php.ini
/etc/php/8.2/apache2/php.ini
/etc/php/8.2/fpm/php.ini
确认以下两项:
display_errors = On
error_reporting = E_ALL
然后重启服务:
sudo systemctl restart apache2
# 或
sudo systemctl restart php8.2-fpm
sudo tail -f /var/log/apache2/error.log
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/php8.2-fpm.log
报错示例:
PHP Fatal error: Uncaught Error: Call to undefined function mb_strlen()
解决:
sudo apt install php-mbstring
sudo systemctl restart apache2
常用扩展:
sudo apt install php-mysql php-curl php-gd php-xml php-mbstring php-zip
Nginx 常见错误:
File not found.
检查:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
确认 PHP-FPM 在运行:
systemctl status php8.2-fpm
Permission denied
解决:
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
比如 CMS 要求 PHP 8.1,但系统是 8.2
查看版本:
php -v
切换版本(如已安装多版本):
sudo update-alternatives --config php
你可以贴出:
cat /etc/os-release)php -v)我可以一步一步带你修 ✅