旧Laravel项目换服务器需迁移代码、配置、依赖及数据库,并重建运行环境:配置PHP≥7.4及必要扩展,上传项目并执行composer install --no-dev,正确设置.env与APP_KEY,Nginx root指向public目录,赋予storage和bootstrap/cache写权限,运行php artisan storage:link、清缓存及php artisan migrate。

旧Laravel项目换服务器,不是重装框架,而是迁移+重建运行环境。核心是把代码、配置、依赖、数据库完整搬到新机器,并让Nginx/Apache能正确指向public入口、PHP能正常执行Artisan命令。整个过程不复杂,但几个关键点容易出错。
一、准备新服务器基础环境
确保新服务器已安装:
- PHP ≥ 7.4(推荐8.1+),并启用必要扩展:
mbstring、xml、curl、zip、pdo_mysql、fileinfo(Laravel 5.5+需此扩展,常被忽略) - Composer(全局可用)
- Nginx 或 Apache(本文以Nginx为例)
- MySQL / MariaDB(或 PostgreSQL)
CentOS/Ubuntu可一键检查PHP扩展是否齐全:php -m | grep -E "(mbstring|xml|pdo|zip|fileinfo)"
二、上传项目代码并安装依赖
将旧项目完整上传到新服务器(如 /var/www/myapp),注意保留隐藏文件(尤其是 .env 和 .git)。然后进入项目目录执行:
-
composer install --no-dev --optimize-autoloader(生产环境禁用开发依赖) - 若提示缺少扩展(如
fileinfo),需手动编译或通过包管理器安装(CentOS:yum install php-fileinfo;Ubuntu:apt install php-fileinfo) - 确保
.env文件存在且配置正确(数据库、缓存、队列、APP_KEY等)
如果没备份 .env,需重新创建:cp .env.example .env → php artisan key:generate → 手动填入数据库账号密码等。
三、配置Web服务器指向public目录
Nginx必须把 root 指向 your-project/public,否则会暴露敏感文件。典型配置片段:
root /var/www/myapp/public;index index.php;location / { try_files $uri $uri/ /index.php?$query_string; }location ~ \.php$ { fastcgi_pass unix:/run/php/php8.1-fpm.sock; ... }
配置完务必测试:sudo nginx -t && sudo systemctl reload nginx
四、设置权限与运行必需操作
Laravel对两个目录有强写入要求:
-
storage/和bootstrap/cache/必须属于Web服务器用户(如www-data或www)且可写:sudo chown -R www-data:www-data storage bootstrap/cachesudo chmod -R 775 storage bootstrap/cache - 执行软链接命令(用于文件上传):
php artisan storage:link(失败时检查disable_functions是否禁用了symlink或exec) - 清缓存并迁移数据库:
php artisan config:clear && php artisan cache:clear && php artisan view:clearphp artisan migrate(如有新迁移文件)
最后访问域名或IP,看到Laravel欢迎页或登录页,即表示部署成功。


















