温馨提示×

Debian PHP与Nginx怎么配

小樊
37
2026-07-17 10:04:03
栏目: 编程语言

下面给你一套**在 Debian 系统上配置 Nginx + PHP(PHP-FPM)**的常见、稳定做法,适用于 Debian 11 / 12,也基本适用于 Ubuntu。


一、安装 Nginx 和 PHP

1. 更新软件源

sudo apt update
sudo apt upgrade -y

2. 安装 Nginx

sudo apt install nginx -y

启动并设置开机自启:

sudo systemctl enable nginx
sudo systemctl start nginx

浏览器访问服务器 IP,看到 Nginx 欢迎页说明安装成功。


3. 安装 PHP(PHP-FPM)

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

二、配置 Nginx 支持 PHP

1. 确认 PHP-FPM 监听方式

PHP-FPM 有两种方式:

推荐(Debian 默认):Unix Socket

ls /run/php/php8.2-fpm.sock

2. 修改 Nginx 站点配置

编辑默认站点(或新建一个):

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


3. 测试并重启 Nginx

sudo nginx -t
sudo systemctl restart nginx

三、测试 PHP 是否生效

创建测试文件:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

浏览器访问:

http://服务器IP/info.php

✅ 看到 PHP 信息页面说明配置成功。

⚠️ 测试完成后建议删除:

sudo rm /var/www/html/info.php

四、常见问题排查

1. 访问 PHP 文件直接下载

原因:Nginx 没有交给 PHP-FPM 处理
✅ 检查:

  • location ~ \.php$ 是否存在
  • fastcgi_pass 路径是否正确

2. 502 Bad Gateway

常见原因:

  • PHP-FPM 没启动
  • socket 路径错误

检查:

systemctl status php8.2-fpm
ls /run/php/php8.2-fpm.sock

3. 权限问题

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 配置

如果你告诉我:

  • Debian 版本
  • PHP 版本
  • 是普通网站还是框架(如 Laravel)

我可以给你更精确的配置方案

0