温馨提示×

debian php怎么部署项目

小樊
39
2026-09-23 09:58:26
栏目: 编程语言

下面按最常见的 Debian + PHP 项目(如 Laravel / ThinkPHP / 原生 PHP)场景,给你一套从零部署流程,你可以按需取用。


一、更新系统

sudo apt update
sudo apt upgrade -y

二、安装 PHP 及常用扩展

以 PHP 8.2 为例(Debian 12 默认):

sudo apt install -y php php-cli php-fpm \
php-mysql php-pdo php-mbstring php-xml \
php-curl php-zip php-gd php-intl

查看版本:

php -v

三、安装 Web 服务器(Nginx 推荐)

1. 安装 Nginx

sudo apt install -y nginx

2. 启动并设置开机自启

sudo systemctl enable nginx
sudo systemctl start nginx

四、部署 PHP 项目

方式一:放到 Web 目录(最简单)

sudo mkdir -p /var/www/myproject
sudo cp -r your_project/* /var/www/myproject

设置权限:

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

五、配置 Nginx 站点

新建配置文件:

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

示例(Laravel / ThinkPHP):

server {
    listen 80;
    server_name yourdomain.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;
    }
}

启用站点:

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

六、数据库(MySQL 示例)

sudo apt install -y mariadb-server
sudo mysql_secure_installation

创建数据库:

CREATE DATABASE myproject;
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON myproject.* TO 'user'@'localhost';
FLUSH PRIVILEGES;

七、Composer(PHP 依赖管理)

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer -v

安装依赖:

cd /var/www/myproject
composer install

八、常见框架额外配置

Laravel

cp .env.example .env
php artisan key:generate
php artisan migrate

ThinkPHP

  • 确保 runtime 目录可写
  • 入口在 public/index.php

九、防火墙(可选)

sudo apt install -y ufw
sudo ufw allow 80
sudo ufw allow 22
sudo ufw enable

十、访问测试

浏览器访问:

http://服务器IP

或绑定域名后访问。


常见坑提示

✅ PHP-FPM sock 路径要匹配
✅ 目录权限必须是 www-data
✅ .env 不能外网可访问
✅ 生产环境关闭 display_errors


如果你用的是:

  • Debian 11 / PHP 7.4
  • Apache 而不是 Nginx
  • Docker / 宝塔 / 1Panel
  • 某个具体框架

告诉我,我可以给你更精确的部署方案。

0 踩