如何在Azure部署Laravel-PHP API与React前端并解决.env及PHP版本问题?
解决方案:Azure App Service部署Laravel API + React前端
一、将Laravel .env数据传入Azure App Service
Laravel会优先读取系统环境变量,无需上传.env文件(避免敏感信息泄露),直接通过Azure App Service的应用设置配置即可:
- 登录Azure门户,进入目标App Service资源
- 左侧导航选择配置 > 应用程序设置
- 点击新建应用程序设置,按
KEY=VALUE格式添加.env中的每一项:- 例如
.env里的APP_KEY=base64:...,就添加键为APP_KEY、值为对应字符串的设置 - 数据库配置如
DB_HOST=xxx,对应添加DB_HOST键和对应值
- 例如
- 保存设置后,App Service自动重启,Laravel会自动读取这些环境变量,效果与本地
.env一致
如果用GitHub Actions或Azure DevOps自动化部署,可在流水线的环境变量中配置这些值,部署时自动同步到App Service。
二、解决PHP版本不兼容的构建错误
1. 指定App Service运行时PHP版本
- 进入App Service的配置 > 常规设置
- 在PHP版本下拉菜单中选择Laravel要求的版本(比如Laravel 10需PHP 8.1+,Laravel 9需PHP 8.0+)
- 保存后重启服务
2. 构建阶段匹配PHP版本(自动化部署场景)
- 本地构建:用
php -v检查版本,不符则通过phpenv(Mac/Linux)或XAMPP/WAMP切换对应版本 - GitHub Actions流水线:在部署步骤前添加指定PHP版本的步骤:
- name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: '8.2' # 替换为你的Laravel要求版本
- Azure DevOps流水线:使用PHP任务指定版本:
- task: UsePHP@0 inputs: version: '8.2'
3. 修正Composer依赖约束
若构建时出现依赖版本错误,执行composer update更新依赖到兼容当前PHP版本的版本,或在composer.json中明确PHP版本约束:
"require": { "php": "^8.1", // 其他依赖项... }
内容的提问来源于stack exchange,提问作者Manilal Ramanujan
相关产品推荐
相关产品推荐

