温馨提示×

怎样迁移Debian的Laravel

小樊
36
2026-07-06 06:42:25
栏目: 智能运维

迁移 Debian 上的 Laravel 项目,通常分为 服务器环境准备 → 项目迁移 → 配置与权限 → 数据库 → 测试 几个阶段。下面给你一套实战型完整流程,适用于从一台 Debian 服务器迁移到另一台,或重装系统后恢复。


一、环境准备(新 Debian 服务器)

1️⃣ 更新系统

sudo apt update && sudo apt upgrade -y

2️⃣ 安装必要软件

PHP + 常用扩展

sudo apt install -y \
php php-cli php-fpm \
php-mysql php-pgsql php-sqlite3 \
php-curl php-xml php-mbstring \
php-zip php-gd php-bcmath php-tokenizer

查看 PHP 版本:

php -v

3️⃣ 安装数据库(MySQL / PostgreSQL)

MySQL

sudo apt install -y mysql-server
sudo mysql_secure_installation

PostgreSQL

sudo apt install -y postgresql postgresql-contrib

4️⃣ 安装 Nginx / Apache

Nginx(推荐)

sudo apt install -y nginx

5️⃣ 安装 Composer

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

二、迁移 Laravel 项目

方式一:直接复制项目(最常见)

1️⃣ 打包原服务器项目

cd /var/www
tar -czvf laravel.tar.gz your_project

2️⃣ 传输到新服务器

scp laravel.tar.gz user@new_server_ip:/tmp

3️⃣ 解压

sudo mkdir -p /var/www/your_project
sudo tar -xzvf /tmp/laravel.tar.gz -C /var/www/your_project --strip-components=1

方式二:Git 方式(推荐生产环境)

cd /var/www
git clone git@github.com:your/repo.git your_project
cd your_project
composer install --no-dev --optimize-autoloader

三、配置 Laravel

1️⃣ 复制环境配置

cp .env.example .env

或直接从旧服务器复制:

scp .env user@new_server:/var/www/your_project

2️⃣ 修改 .env

APP_ENV=production
APP_DEBUG=false
APP_URL=http://your-domain.com

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=password

3️⃣ 生成 APP_KEY

php artisan key:generate

四、权限设置(非常重要)

sudo chown -R www-data:www-data /var/www/your_project
sudo chmod -R 755 /var/www/your_project
sudo chmod -R 777 /var/www/your_project/storage
sudo chmod -R 777 /var/www/your_project/bootstrap/cache

五、数据库迁移

1️⃣ 创建数据库

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

2️⃣ 导入旧数据(如果有)

mysql laravel < backup.sql

或:

php artisan migrate --force

六、配置 Web 服务器

✅ Nginx 示例配置

server {
    listen 80;
    server_name your-domain.com;

    root /var/www/your_project/public;
    index index.php;

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

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

重启 Nginx:

sudo systemctl restart nginx

七、优化 Laravel(生产环境)

php artisan config:cache
php artisan route:cache
php artisan view:cache

八、常见问题排查

❌ 500 错误

tail -f /var/www/your_project/storage/logs/laravel.log

❌ Permission denied

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

❌ PHP 版本不匹配

update-alternatives --config php

九、迁移检查清单 ✅

  • [ ] PHP + 扩展
  • [ ] Composer
  • [ ] .env 配置
  • [ ] 数据库
  • [ ] 文件权限
  • [ ] Nginx / Apache
  • [ ] 缓存清理

如果你愿意,我可以:

  • ✅ 针对 Debian 10 / 11 / 12 精确版本
  • ✅ 给你 一键迁移脚本
  • ✅ 帮你排查 500 / 502 错误

直接告诉我你的 Debian 版本 + Laravel 版本 即可。

0