温馨提示×

怎样在Debian迁移Laravel

小樊
43
2026-07-17 23:21:26
栏目: 智能运维

下面按常见场景给你一个完整、可操作的 Debian 上迁移 Laravel 项目 指南。
假设你是把 Laravel 项目从一台服务器迁移到另一台 Debian 服务器,而不是升级 Laravel 版本。


一、迁移前准备(源服务器)

1. 确认环境

源服务器记录以下信息:

php -v
nginx -v   # 或 apache2 -v
mysql -V   # 或 mariadb -V

查看 Laravel 版本:

php artisan --version

2. 备份项目代码

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

3. 备份数据库

mysqldump -u db_user -p db_name > db_backup.sql

二、目标 Debian 服务器环境搭建

1. 更新系统

sudo apt update && sudo apt upgrade -y

2. 安装 Nginx / Apache

Nginx(推荐)

sudo apt install nginx -y

3. 安装 PHP 及扩展

Laravel 10+ 推荐 PHP 8.1 / 8.2 / 8.3

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

检查:

php -v

4. 安装数据库

sudo apt install mariadb-server -y
sudo mysql_secure_installation

创建数据库和用户:

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

5. 安装 Composer

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

三、迁移 Laravel 项目

1. 上传项目

scp laravel_backup.tar.gz user@new_server:/var/www

解压:

cd /var/www
tar -xzvf laravel_backup.tar.gz
mv your_project laravel

2. 设置权限(非常重要)

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

3. 配置 .env

cp .env.example .env
nano .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
DB_USERNAME=laravel_user
DB_PASSWORD=password

生成 key:

php artisan key:generate

4. 恢复数据库

mysql -u laravel_user -p laravel_db < db_backup.sql

5. 安装依赖

composer install --no-dev --optimize-autoloader

6. 运行迁移(可选)

如果是新环境:

php artisan migrate

四、配置 Web 服务器

Nginx 示例配置

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

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

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

重启:

sudo systemctl restart nginx

五、常见问题排查

1. 500 错误

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

2. 权限问题

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

3. PHP 版本不匹配

update-alternatives --config php

六、迁移后优化(生产环境)

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

如果你愿意,我可以:

  • ✅ 给你 Debian 10 / 11 / 12 专用命令
  • ✅ 区分 Apache / Nginx
  • ✅ 处理 Docker / 宝塔 / 云服务器
  • ✅ 帮你排查 迁移后报错

你现在是在 本地 → 服务器 还是 服务器 → 服务器

0