温馨提示×

ubuntu php-fpm怎么配nginx

小樊
35
2026-09-28 13:51:02
栏目: 编程语言

下面给你一个Ubuntu 上 Nginx + PHP-FPM 的最小可用配置教程(以 Ubuntu 20.04/22.04 为例,PHP 7.4 / 8.1 都适用)。


一、安装 Nginx 和 PHP-FPM

sudo apt update
sudo apt install nginx php-fpm

查看 PHP 版本(以 8.1 为例):

php -v

PHP-FPM 服务名通常是:

  • php7.4-fpm
  • php8.1-fpm

二、确认 PHP-FPM 监听方式

方式 1:Unix Socket(推荐)

路径一般是:

/run/php/php8.1-fpm.sock

确认:

ls /run/php/

三、配置 Nginx 支持 PHP

编辑站点配置:

sudo nano /etc/nginx/sites-available/default

示例配置(重要部分)

server {
    listen 80;
    server_name your_domain_or_ip;

    root /var/www/html;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

⚠️ 注意:php8.1-fpm.sock 要和你安装的 PHP 版本一致


四、测试 PHP

创建测试文件:

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

五、检查并重启服务

sudo nginx -t
sudo systemctl restart nginx
sudo systemctl restart php8.1-fpm

浏览器访问:

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

看到 PHP 信息页就成功了。


六、常见问题

1. 502 Bad Gateway

原因通常是:

  • socket 路径写错
  • php-fpm 没启动

检查:

systemctl status php8.1-fpm

2. 文件权限问题

sudo chown -R www-data:www-data /var/www/html

七、(可选)启用 HTTPS

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx

如果你告诉我:

  • Ubuntu 版本
  • PHP 版本
  • 是本地还是服务器
  • 是否用 Docker

我可以给你更精确的配置。

0 踩