Google App Engine仅显示index.php文件问题排查求助
排查App Engine PHP应用所有请求返回index.php的问题
针对你的情况,以下是具体排查和解决步骤:
检查app.yaml的缩进格式
YAML对缩进要求严格,你提供的配置中handlers项存在多余缩进,导致该路由规则未被正确加载。正确的层级应该是handlers与runtime同级,示例如下:runtime: php81 handlers: # Serve php scripts. - url: /(.+\.php)$ script: \1确保所有子项(如
url、script)的缩进一致,推荐使用2或4个空格,不要混用制表符。验证路由规则的有效性
确认正则表达式/(.+\.php)$能覆盖你需要访问的PHP文件路径:- 该规则会匹配所有以
.php结尾的路径(如/test.php、/api.php) script: \1会将匹配到的文件名作为入口脚本,需确保目标文件确实存在于部署目录的根目录
- 该规则会匹配所有以
本地测试验证配置
使用gcloud app serve命令在本地启动应用,尝试访问不同的PHP文件(如http://localhost:8080/test.php):- 如果本地能正常响应对应文件,说明配置修复有效,问题出在云端部署的配置同步上
- 如果本地同样返回index.php,检查是否存在其他未配置的默认路由,或文件是否被
.gcloudignore排除
查看云端请求日志
通过gcloud app logs read命令或Cloud Console的日志面板,查看请求的路由匹配详情:- 检查请求是否命中了预期的
/(.+\.php)$规则 - 如果请求被标记为“默认路由”,说明你的handler配置仍未生效,需重新检查app.yaml格式
- 检查请求是否命中了预期的
确认文件状态
- 确保所有PHP文件名大小写正确(App Engine环境区分大小写)
- 检查
.gcloudignore文件,确认没有误排除需要部署的PHP文件 - 重新部署应用时,使用
gcloud app deploy --verbosity=info查看部署日志,确认所有文件都已上传
内容的提问来源于stack exchange,提问作者Nancy Moore
相关产品推荐
相关产品推荐

