如何将Laravel 8应用连同MySQL数据库部署到Google Cloud并配置域名?
Laravel 应用部署到 Google Cloud 全步骤
1. 前期准备
- 确保本地Laravel项目代码已提交到Git仓库,不要把本地.env配置文件提交到公共仓库
- 提前整理好Laravel生产环境需要的配置项,包括PHP版本、扩展依赖要求
- 激活Google Cloud账号,开通对应项目的计费服务
2. 配置Cloud SQL MySQL数据库
- 进入GCP控制台搜索「Cloud SQL」,创建新实例,选择MySQL引擎
- 配置实例规格、存储空间、离目标用户近的地域,设置root账号密码,等待实例创建完成
- 进入实例详情页,创建专属业务数据库,以及Laravel专用的数据库账号,授予该账号对应数据库的全部操作权限
- 推荐使用Cloud SQL Auth Proxy做应用和数据库的连接,无需暴露数据库公网IP,安全性更高,记录好数据库连接地址、端口、库名、账号密码后续使用
3. 部署Laravel应用
可根据需求选择两种部署方式:
3.1 App Engine部署(无服务器架构,无需管理服务器)
- 本地Laravel项目根目录新建
app.yaml配置文件,填写PHP运行时版本、非敏感类环境变量、静态资源路径、入口规则,敏感配置(比如数据库密码)用GCP Secret Manager管理 - 本地安装Google Cloud SDK,运行
gcloud init登录GCP账号并绑定对应项目 - 运行
gcloud app deploy触发部署,部署完成后会自动生成xxx.appspot.com格式的默认域名,可先通过该域名测试应用基础运行状态
3.2 Compute Engine部署(自主管理服务器,灵活性更高)
- 新建Compute Engine虚拟机实例,选择Ubuntu等常用操作系统,配置CPU、内存规格,勾选允许HTTP/HTTPS流量
- SSH连接到虚拟机,安装Nginx、对应版本的PHP及Laravel所需扩展、Composer
- 克隆项目代码到虚拟机,安装依赖后修改.env配置,关联Cloud SQL数据库
- 配置Nginx站点规则,指向Laravel的public目录,设置伪静态和目录权限,重启Nginx后可通过虚拟机公网IP测试访问
4. 域名配置与HTTPS开启
- 提前在域名注册商处购买所需域名
- GCP控制台搜索「Cloud DNS」,创建对应域名的托管区,获得平台提供的4条NS记录
- 到域名注册商的管理后台,将域名的DNS服务器修改为Cloud DNS给出的4条NS地址
- 回到Cloud DNS托管区添加A记录,值指向应用的公网IP;如果用App Engine可直接在「自定义域名」页面添加域名,按照提示完成解析配置即可
- 配置SSL证书:App Engine添加自定义域名后可直接申请Google托管的免费证书,开启强制HTTPS跳转;Compute Engine可通过Certbot申请Let's Encrypt免费证书,配置Nginx开启HTTPS
- 等待DNS解析生效,通常10分钟到24小时不等,生效后即可通过自定义域名访问应用
5. 上线前最终校验
- 测试全部业务功能,尤其是数据库读写、用户登录、文件上传等核心逻辑是否正常
- 确认Laravel生产配置正确:
APP_DEBUG设为false,APP_ENV设为production,配置好缓存、会话驱动 - 配置日志输出到GCP Cloud Logging,方便后续问题排查
- 调整防火墙规则,关闭不必要的开放端口,禁止数据库公网直接访问
内容的提问来源于stack exchange,提问作者Merve Bozkurt
相关产品推荐
相关产品推荐

