迁移 Debian 上的 Laravel 项目,通常包含 代码、依赖、配置、数据库、文件存储、队列/定时任务、Web 服务器 等部分。下面给你一套完整、可操作的迁移流程,适用于从一台 Debian 服务器迁移到另一台 Debian 服务器(或本地 → 服务器)。
在目标服务器上确认:
php -v
composer -V
nginx -v
mysql -V
cd /var/www
tar --exclude=node_modules \
--exclude=vendor \
--exclude=.git \
-czvf laravel.tar.gz your_project
scp laravel.tar.gz user@target_server:/var/www/
cd /var/www
tar -xzvf laravel.tar.gz
cd your_project
composer install --no-dev --optimize-autoloader
如果提示内存不足:
php -d memory_limit=-1 /usr/bin/composer install
cp .env.example .env
或直接从源服务器复制 .env(注意修改数据库等配置)
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 storage bootstrap/cache
CREATE DATABASE laravel_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'laravel'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel'@'localhost';
FLUSH PRIVILEGES;
在源服务器导出:
mysqldump -u user -p laravel_db > laravel.sql
传输并导入:
mysql -u laravel -p laravel_db < laravel.sql
php artisan migrate --force
⚠️ 不要混用 migrate + 导入数据
rsync -avz storage/ user@target:/var/www/your_project/storage/
php artisan storage:link
server {
listen 80;
server_name example.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/php8.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
sudo systemctl restart nginx
sudo systemctl restart php8.2-fpm
sudo apt install supervisor
示例配置:
[program:laravel-worker]
command=php /var/www/your_project/artisan queue:work
autostart=true
autorestart=true
user=www-data
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker
crontab -e
* * * * * php /var/www/your_project/artisan schedule:run >> /dev/null 2>&1
.env 配置正确php artisan config:clearphp artisan cache:clearphp artisan route:cleartail -f storage/logs/laravel.log
sudo chown -R www-data:www-data .
如果你愿意,我可以:
✅ 给你 Debian 12 + Laravel 10 完整迁移脚本
✅ 帮你 排查迁移后报错
✅ 提供 Docker / 本地 → 服务器迁移方案
只要告诉我你的 Laravel 版本 + Debian 版本 + Web 服务器 即可。