温馨提示×

ubuntu php fpm怎么部署项目

小樊
41
2026-09-04 13:19:36
栏目: 编程语言

下面给你一套在 Ubuntu 上用 PHP‑FPM 部署 PHP 项目的常见做法(以 Nginx + PHP‑FPM 为例,最常用)。


一、安装环境

1. 更新系统

sudo apt update
sudo apt upgrade -y

2. 安装 Nginx 和 PHP‑FPM

sudo apt install nginx php-fpm -y

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

php -v

对应 fpm 服务名一般是:

php8.1-fpm

启动并设置开机自启:

sudo systemctl enable php8.1-fpm
sudo systemctl start php8.1-fpm

二、部署项目代码

1. 创建项目目录

sudo mkdir -p /var/www/myproject
sudo chown -R www-data:www-data /var/www/myproject

2. 上传代码

可以用:

  • scp
  • git clone
  • rsync

示例(Git):

cd /var/www/myproject
sudo git clone https://github.com/your/repo.git .

三、配置 Nginx + PHP‑FPM

1. 新建 Nginx 站点配置

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

示例配置(Laravel / 普通 PHP 都适用):

server {
    listen 80;
    server_name example.com;

    root /var/www/myproject/public; # 如果是普通项目改成 /var/www/myproject
    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;
    }
}

2. 启用站点

sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

四、权限与运行用户

PHP‑FPM 默认用户是 www-data:

ps aux | grep php-fpm

确保项目可写目录权限正确(如 storage / cache):

sudo chown -R www-data:www-data /var/www/myproject
sudo chmod -R 755 /var/www/myproject

五、常见补充说明

1. 防火墙

sudo ufw allow 80
sudo ufw allow 443

2. HTTPS(可选)

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

3. 重启 PHP‑FPM

sudo systemctl restart php8.1-fpm

六、常见问题排查

  • 502 Bad Gateway

    • php-fpm.sock 路径不对
    • php-fpm 没启动
  • File not found

    • root 路径写错
    • 权限不足
  • 白屏

    • 看日志:
    tail -f /var/log/nginx/error.log
    tail -f /var/log/php8.1-fpm.log
    

如果你用的是 Apache + PHP‑FPM 或 Docker / Laravel / ThinkPHP,可以告诉我,我可以给你对应方案。

0 踩