You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel应用结合Git优化部署流程的技术问询

适配Laravel的GitHub高效部署方案

没问题,我给你一套完全贴合你现有环境的Git部署流程,既能利用GitHub的版本管理能力,又能高效管理生产环境的代码:

1. 先在服务器上把GitHub仓库克隆到/var/www外的目录

首先选一个合适的位置,比如/opt/laravel-app-repo(完全在/var/www之外,符合你的要求),执行以下命令:

# 创建目录并设置权限(替换成你服务器的用户组,比如www-data或你的登录用户)
sudo mkdir -p /opt/laravel-app-repo
sudo chown your-server-user:your-server-group /opt/laravel-app-repo

# 进入目录并克隆你的GitHub仓库(推荐用SSH免密,HTTPS也可以)
cd /opt/laravel-app-repo
git clone git@github.com:your-username/your-laravel-repo.git .

小提示:如果用SSH,记得在服务器上生成SSH密钥并添加到GitHub账户,这样后续拉取代码不用每次输密码,更省心。

2. 写个一键部署脚本(核心高效操作)

手动复制代码容易出错,写个bash脚本放在克隆的仓库里,一键完成拉取代码、同步到生产目录、Laravel部署配置:
创建/opt/laravel-app-repo/deploy.sh文件,内容如下:

#!/bin/bash

# 替换成你的实际路径
REPO_PATH="/opt/laravel-app-repo"
APP_PATH="/var/www/your-host-name" # 这里填你的<host's name>

# 拉取GitHub上最新的master分支代码
cd $REPO_PATH
git pull origin master

# 同步代码到生产目录,排除不需要的文件(比如.git、本地.env、依赖包等)
rsync -avz --delete \
  --exclude='.git/' \
  --exclude='node_modules/' \
  --exclude='.env' \
  --exclude='.gitignore' \
  --exclude='deploy.sh' \
  $REPO_PATH/ $APP_PATH/

# 进入生产目录,执行Laravel必要的部署步骤
cd $APP_PATH

# 安装生产环境依赖(跳过dev依赖,优化自动加载)
composer install --no-dev --optimize-autoloader

# 清理并缓存配置、路由
php artisan cache:clear
php artisan config:cache
php artisan route:cache

# 设置Laravel所需的文件权限(确保web服务器能读写)
sudo chown -R www-data:www-data storage bootstrap/cache
sudo chmod -R 775 storage bootstrap/cache

给脚本添加执行权限:

chmod +x /opt/laravel-app-repo/deploy.sh

3. 日常开发推送流程

你本地开发的时候,还是按你习惯的方式来:

  • 写完代码后提交到本地Git:
git add .
git commit -m "fix: 修复用户登录bug"
  • 推送到GitHub的master分支:
git push origin master

4. 一键部署到生产服务器

要部署的时候,只需要登录服务器,执行这个脚本就行:

cd /opt/laravel-app-repo
./deploy.sh

进阶玩法:如果想更自动化,可以配置GitHub Actions,每次推master自动触发服务器执行部署脚本,不过先从手动执行开始,简单易排查问题。

几个关键注意点

  • .env文件:生产环境的.env绝对不要提交到GitHub,服务器上的/var/www/<host's name>/.env要单独维护,脚本里已经排除了这个文件,不用担心被覆盖。
  • 依赖环境:确保服务器上已经装了Composer、PHP的必要扩展(比如mbstring、xml等),不然composer install会报错。
  • 回滚方案:可以在脚本开头加个备份步骤,比如把生产目录打包备份到别的位置,万一部署出问题能快速回滚。

内容的提问来源于stack exchange,提问作者Johnny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:23:34