下面给你一套**在 Debian 系统上配置 Nginx + PHP(PHP-FPM)**的常见、稳定做法,适用于 Debian 11 / 12,也基本适用于 Ubuntu。
sudo apt update
sudo apt upgrade -y
sudo apt install nginx -y
启动并设置开机自启:
sudo systemctl enable nginx
sudo systemctl start nginx
浏览器访问服务器 IP,看到 Nginx 欢迎页说明安装成功。
以 PHP 8.2 为例(Debian 12 默认):
sudo apt install php8.2-fpm php8.2-cli -y
常用扩展(按需):
sudo apt install php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml -y
启动 PHP-FPM:
sudo systemctl enable php8.2-fpm
sudo systemctl start php8.2-fpm
查看状态:
systemctl status php8.2-fpm
PHP-FPM 有两种方式:
✅ 推荐(Debian 默认):Unix Socket
ls /run/php/php8.2-fpm.sock
编辑默认站点(或新建一个):
sudo vim /etc/nginx/sites-available/default
最小可用配置示例:
server {
listen 80;
server_name your_domain_or_ip;
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;
}
}
如果是 PHP 8.1,把
php8.2改成php8.1
sudo nginx -t
sudo systemctl restart nginx
创建测试文件:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
浏览器访问:
http://服务器IP/info.php
✅ 看到 PHP 信息页面说明配置成功。
⚠️ 测试完成后建议删除:
sudo rm /var/www/html/info.php
原因:Nginx 没有交给 PHP-FPM 处理
✅ 检查:
location ~ \.php$ 是否存在fastcgi_pass 路径是否正确常见原因:
检查:
systemctl status php8.2-fpm
ls /run/php/php8.2-fpm.sock
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
✅ 多站点配置
✅ HTTPS(Let’s Encrypt)
✅ Nginx + PHP 性能优化
✅ Laravel / ThinkPHP 配置
如果你告诉我:
我可以给你更精确的配置方案。