如何在Laravel Forge中预览网站变更并区分开发与线上站点?
实现开发预览站点与正式站点分离的方案
完全可以实现你想要的需求!Laravel Forge + GitHub的组合天生就支持这种分支隔离的部署模式,下面是具体的步骤和思路:
1. 在Laravel Forge上创建两个独立站点
- 登录Forge后,在你的Linode服务器下创建两个站点:
- 正式站点:绑定你的主域名(比如
yourdomain.com),用来承载对外展示的master分支代码。 - 开发预览站点:绑定一个子域名(比如
dev.yourdomain.com),专门用来部署你的开发分支(比如develop),仅供你自己预览测试。
- 正式站点:绑定你的主域名(比如
2. 为每个站点配置专属部署分支
进入每个站点的「Deployment」设置面板:
- 正式站点:将部署分支设置为
master,开启自动部署开关——这样每次你把代码推送到GitHub的master分支时,Forge会自动拉取代码、执行部署流程,更新线上正式站点。 - 开发预览站点:将部署分支设置为你的开发分支(比如
develop),同样开启自动部署——以后你推代码到develop分支,预览站点就会自动同步更新,直接访问dev.yourdomain.com就能看到最新的开发成果。
3. 微调部署脚本(可选但推荐)
Forge默认的部署脚本已经包含Laravel项目的基础部署步骤,但你可以根据两个站点的需求调整:
- 开发站点:可以在
.env里设置APP_DEBUG=true开启调试模式,方便排查问题;也可以关闭缓存优化,让修改实时生效。 - 正式站点:保持
APP_DEBUG=false,确保站点安全;保留缓存相关的命令(比如php artisan config:cache)提升性能。 - 举个Forge部署脚本的示例(你可以在站点设置里修改):
cd /home/forge/yourdomain.com git pull origin master composer install --no-interaction --prefer-dist --optimize-autoloader php artisan migrate --force php artisan cache:clear php artisan config:cache php artisan route:cache npm install npm run build sudo supervisorctl restart yourdomain.com
4. 推荐的日常工作流
- 开发阶段:本地基于
develop分支写代码,提交后推送到GitHub的develop分支,等待Forge自动更新预览站点,随时访问dev.yourdomain.com查看效果。 - 发布正式版本:当开发完成、测试无误后,把
develop分支合并到master分支并推送到GitHub,Forge会自动更新正式站点,访客就能看到新内容了。
这样就能完美实现开发预览与正式站点的隔离,既不影响访客访问,又能随时查看最新的开发变更~
内容的提问来源于stack exchange,提问作者RendermanGL
相关产品推荐
相关产品推荐

