Android开发者求助:Google Cloud部署PHP API仅显示index.php页面
问题分析与解决方案
你的问题核心出在app.yaml的handlers配置上——当前规则把所有请求都直接转发到index.php,不管你访问的是哪个PHP文件,自然就无法访问其他脚本了。
修改后的app.yaml配置建议
你需要调整handlers部分,让特定PHP文件的请求能正确映射到对应脚本,同时保留index.php作为兜底(如果需要的话)。以下是适配你场景的配置:
runtime: php55 api_version: 1 threadsafe: yes runtime_config: document_root: ipltrivia handlers: # 1. 处理所有PHP文件的直接请求 - url: /(.+\.php)$ script: \1 # 2. 处理静态资源(可选,根据你的项目需求调整文件类型) - url: /(.+\.(css|js|png|jpg|jpeg|gif|ico))$ static_files: ipltrivia/\1 upload: ipltrivia/(.+\.(css|js|png|jpg|jpeg|gif|ico))$ # 3. 兜底请求导向index.php(比如访问根目录或未匹配的路径) - url: .* script: index.php
配置说明
- 第一个handler:匹配所有以
.php结尾的请求,将请求路径直接映射到对应的PHP脚本。比如你访问your-domain.com/api/user.php,就会执行ipltrivia/api/user.php(因为document_root指向ipltrivia目录)。 - 第二个handler:专门处理静态资源文件(比如样式、脚本、图片等),避免这些文件被错误导向
index.php。你可以根据项目里的静态文件类型,添加或移除括号里的后缀。 - 第三个handler:作为兜底规则,处理所有未被前面规则匹配的请求,比如访问网站根目录时会加载
index.php。
额外提醒
PHP 5.5是非常老旧的版本,Google App Engine对它的支持已经逐步缩减,还存在不少安全漏洞。如果你的项目代码兼容的话,建议尽快升级到PHP 7.4或更高版本(比如runtime: php81),既能获得更好的性能和安全性,还能使用更多现代PHP特性。
内容的提问来源于stack exchange,提问作者Curvegraph
相关产品推荐
相关产品推荐

