在 Debian 上让 Nginx 支持 PHP,通常是通过 PHP-FPM(FastCGI) 来实现的。下面是从零开始的标准配置步骤。
sudo apt update
sudo apt upgrade -y
sudo apt install nginx -y
以 PHP 8.2 为例(Debian 12 默认版本可能不同):
sudo apt install php-fpm php-cli php-mysql -y
如果你需要其他扩展:
sudo apt install php-curl php-gd php-mbstring php-xml
查看 PHP-FPM 服务名(可能不同):
systemctl status php8.2-fpm
启动并设置开机自启:
sudo systemctl enable php8.2-fpm
sudo systemctl start php8.2-fpm
PHP-FPM 默认监听:
unix:/run/php/php8.2-fpm.sock
以默认站点为例:
sudo nano /etc/nginx/sites-available/default
示例完整配置(重点看 location ~ \.php$):
server {
listen 80;
server_name example.com; # 或 _
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
sudo nginx -t
sudo systemctl reload nginx
http://服务器IP/info.php
看到 PHP 信息页即配置成功。
原因通常是:
fastcgi_pass 路径错误检查:
ls /run/php/
说明 Nginx 没识别 .php
location ~ \.php$ 存在reload nginxsudo chown -R www-data:www-data /var/www/html
info.php如果你告诉我:
我可以给你更精确的配置文件。