温馨提示×

Debian LNMP怎么部署项目

小樊
48
2026-07-15 17:51:55
栏目: 智能运维

下面给你一个**在 Debian 上部署 LNMP 项目(Linux + Nginx + MySQL + PHP)**的完整实战流程,适合大多数 PHP 项目(Laravel / ThinkPHP / 原生 PHP 等)。


一、环境说明

  • 系统:Debian 10 / 11 / 12
  • 服务:
    • Nginx
    • MySQL / MariaDB
    • PHP-FPM
  • 示例项目目录:/var/www/myproject
  • 域名示例:example.com

二、更新系统

sudo apt update
sudo apt upgrade -y

三、安装 Nginx

sudo apt install nginx -y

启动并设置开机自启:

sudo systemctl enable nginx
sudo systemctl start nginx

测试: 浏览器访问服务器 IP,看到 Welcome to nginx 即成功。


四、安装 MySQL / MariaDB

1️⃣ 安装 MariaDB(推荐)

sudo apt install mariadb-server -y

2️⃣ 初始化数据库

sudo mysql_secure_installation

常见设置:

  • 设置 root 密码 ✅
  • 移除匿名用户 ✅
  • 禁止 root 远程登录 ✅
  • 删除 test 库 ✅

3️⃣ 创建项目数据库

sudo mysql -u root -p
CREATE DATABASE myproject CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'myproject'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON myproject.* TO 'myproject'@'localhost';
FLUSH PRIVILEGES;
EXIT;

五、安装 PHP

1️⃣ 安装 PHP 及常用扩展

sudo apt install php-fpm php-mysql php-curl php-xml php-mbstring php-zip php-gd php-redis -y

Debian 11+ 默认是 PHP 8.x

查看版本:

php -v

2️⃣ 确认 PHP-FPM 运行

sudo systemctl status php8.2-fpm

六、部署项目代码

1️⃣ 上传或拉取代码

sudo mkdir -p /var/www/myproject

方式一:Git(推荐)

sudo apt install git -y
cd /var/www/myproject
sudo git clone https://github.com/your/project.git .

方式二:手动上传

scp -r ./project root@server:/var/www/myproject

2️⃣ 设置权限(非常重要)

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

七、配置 Nginx 站点

1️⃣ 新建站点配置

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

2️⃣ 示例配置(PHP 项目)

server {
    listen 80;
    server_name example.com;

    root /var/www/myproject/public;
    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.2-fpm.sock;
    }

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

Laravel 项目 root 指向 public,原生 PHP 指向项目根目录即可。


3️⃣ 启用站点

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

八、配置环境文件(如 Laravel)

cp .env.example .env
nano .env

修改数据库配置:

DB_DATABASE=myproject
DB_USERNAME=myproject
DB_PASSWORD=password

生成 key(Laravel):

php artisan key:generate

九、设置文件权限(再次确认)

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

Laravel 额外:

sudo chmod -R 777 storage bootstrap/cache

十、防火墙放行(如有)

sudo ufw allow 80
sudo ufw allow 443

十一、HTTPS(可选但强烈推荐)

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com

十二、常见问题排查

❌ Nginx 403

  • root 路径错误
  • 权限不足
  • index 文件不存在

❌ 502 Bad Gateway

sudo systemctl status php8.2-fpm

❌ 数据库连不上

  • 检查 .env
  • 确认 MySQL 用户权限
  • 确认 localhost 不是 127.0.0.1

十三、总结流程

✅ Debian
✅ Nginx
✅ MySQL
✅ PHP-FPM
✅ 项目代码
✅ Nginx 站点配置
✅ 权限
✅ 环境配置


如果你愿意,我可以:

  • ✅ 给你 Laravel / ThinkPHP 专用配置
  • ✅ 帮你 排查 502 / 404
  • ✅ 给你 一键部署脚本
  • ✅ 帮你 Docker 化 LNMP

你现在用的是 Debian 几?PHP 几?什么项目?

0