Debian 下 PHP 报错的原因很多,最常见的是版本、模块、权限、配置或依赖问题。下面我按常见场景 → 排查步骤 → 解决方法给你一个实用清单,你可以对照着来。
php -v
如果提示:
command not found
说明 PHP 没装或没加入 PATH。
sudo apt update
sudo apt install php php-cli php-fpm
原因:Web 服务器没调用 PHP
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
然后:
sudo systemctl restart nginx
sudo systemctl restart php8.2-fpm
sudo apt install libapache2-mod-php
sudo a2enmod php8.2
sudo systemctl restart apache2
sudo tail -n 50 /var/log/php8.2-fpm.log
常见错误:
permission deniedsock file not founduser not found编辑:
sudo nano /etc/php/8.2/fpm/pool.d/www.conf
确认:
user = www-data
group = www-data
listen = /run/php/php8.2-fpm.sock
listen.owner = www-data
listen.group = www-data
重启:
sudo systemctl restart php8.2-fpm
编辑:
sudo nano /etc/php/8.2/fpm/php.ini
设置:
display_errors = On
error_reporting = E_ALL
重启 PHP-FPM。
例如:
Class 'PDO' not found
sudo apt install php8.2-mysql php8.2-curl php8.2-mbstring php8.2-xml
然后:
sudo systemctl restart php8.2-fpm
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
sudo chown www-data:www-data /var/lib/php/sessions
| Debian | 推荐 PHP |
|---|---|
| Debian 11 | PHP 8.1 |
| Debian 12 | PHP 8.2 |
如果你强行装了不兼容版本,建议用 sury 源:
sudo apt install -y curl
curl -sSL https://packages.sury.org/php/README | bash
# PHP 错误
tail -f /var/log/php8.2-fpm.log
# Nginx
tail -f /var/log/nginx/error.log
# Apache
tail -f /var/log/apache2/error.log
如果你愿意,直接把报错内容贴出来,比如:
php -v 输出/var/log/ 中的报错我可以 精准帮你定位到一行配置。