下面按常见场景给你一个完整、可操作的 Debian 上迁移 Laravel 项目 指南。
假设你是把 Laravel 项目从一台服务器迁移到另一台 Debian 服务器,而不是升级 Laravel 版本。
在源服务器记录以下信息:
php -v
nginx -v # 或 apache2 -v
mysql -V # 或 mariadb -V
查看 Laravel 版本:
php artisan --version
cd /var/www
tar -czvf laravel_backup.tar.gz your_project
mysqldump -u db_user -p db_name > db_backup.sql
sudo apt update && sudo apt upgrade -y
Nginx(推荐)
sudo apt install nginx -y
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
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;
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer -V
scp laravel_backup.tar.gz user@new_server:/var/www
解压:
cd /var/www
tar -xzvf laravel_backup.tar.gz
mv your_project laravel
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
.envcp .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
mysql -u laravel_user -p laravel_db < db_backup.sql
composer install --no-dev --optimize-autoloader
如果是新环境:
php artisan migrate
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
tail -f /var/www/laravel/storage/logs/laravel.log
sudo chown -R www-data:www-data /var/www/laravel
update-alternatives --config php
php artisan config:cache
php artisan route:cache
php artisan view:cache
如果你愿意,我可以:
你现在是在 本地 → 服务器 还是 服务器 → 服务器?