在 Debian 上 PHP 报错的原因非常多,需要结合具体报错信息才能准确判断。下面我按常见原因分类给你一个排查思路,你可以对照看看是哪一种。
php -v
如果提示 command not found,说明没装:
sudo apt update
sudo apt install php php-cli
如果是 Web 环境(Apache/Nginx),还要装对应模块:
# Apache
sudo apt install libapache2-mod-php
# Nginx
sudo apt install php-fpm
默认 Debian 可能关闭了错误显示。
临时查看错误: 在 PHP 文件顶部加:
ini_set('display_errors', 1);
error_reporting(E_ALL);
或修改 php.ini
php --ini
找到:
display_errors = On
报错类似:
Permission deniedfailed to open stream解决:
sudo chown -R www-data:www-data /var/www
sudo chmod -R 755 /var/www
例如:
Class 'PDO' not foundCall to undefined function mysqli_connect()安装扩展:
sudo apt install php-mysql php-curl php-mbstring php-xml
然后重启服务:
sudo systemctl restart apache2
# 或
sudo systemctl restart php-fpm
Apache
sudo a2enmod php
sudo systemctl restart apache2
Nginx
确认 fastcgi_pass 指向正确的 PHP:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
Debian 12 默认 PHP 8.2,老代码可能不兼容。
查看版本:
php -v
可安装旧版本(如 7.4):
sudo apt install php7.4
# Apache
tail -f /var/log/apache2/error.log
# Nginx + PHP-FPM
tail -f /var/log/php*-fpm.log
tail -f /var/log/nginx/error.log
请把下面任意一项发给我:
php -v)我可以一步到位告诉你怎么修。