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

如何将PHP项目部署到Azure且无需将所有文件放在web根目录

方案1:直接指定Azure App Service自定义Web根目录(无需调整现有项目结构)

  • 进入Azure门户对应App Service的「配置」页面,在「应用程序设置」板块新增配置项:
    键为 WEBSITE_DOCROOT,值为 /home/site/wwwroot/public_html,保存配置后重启应用即可生效。
  • 配置后Web服务只会对外暴露public_html目录下的内容,你可以保留原项目的目录结构:根目录存放composer.json满足Azure构建要求,resources目录和构建生成的vendor目录都存放在站点根目录,不会被外部访问,符合安全要求。
  • 如果你使用的是自定义NGINX运行时,可额外添加自定义启动命令:cp /home/site/wwwroot/nginx.conf /etc/nginx/sites-available/default && service nginx restart,自行编写的NGINX配置文件中将root路径指向public_html即可。

方案2:调整为通用PHP规范项目结构(兼容性更强)

你可以将项目调整为PHP生态通用的目录结构,后续迁移到其他托管平台也无需额外修改:

项目根目录
├── composer.json
├── resources/      (原非公开资源目录,保留原有内容)
├── public/         (原public_html重命名,符合主流PHP框架命名规范)
│   ├── index.php
│   └── 其他公开静态文件、可执行PHP文件
└── vendor/         (构建自动生成,无需提交到Git)

调整后按方案1的方法将WEBSITE_DOCROOT的值改为 /home/site/wwwroot/public 即可正常运行。

可选:自定义部署规则

如果需要自定义部署流程,可在项目根目录新增.deployment文件指定构建规则:

[config]
SCM_DO_BUILD_DURING_DEPLOYMENT = true
WEBROOT_PATH = public_html

Azure内置的Kudu部署服务会自动按照配置执行构建、目录映射逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:18:01