在Google Cloud Platform部署API Platform(Symfony)应用遇问题求助
问题1:App Engine部署后所有路径返回404
排查与修复步骤
- 检查app.yaml路由配置:确保所有请求都转发到前端控制器
index.php。正确的handlers配置示例:
若使用自定义Dockerfile部署(Flex环境),需保证Nginx/Apache等web服务器配置了重写规则,将所有请求导向runtime: php82 handlers: - url: /.* script: auto secure: alwayspublic/index.php。比如Nginx配置片段:location / { try_files $uri /index.php$is_args$args; } - 确认Dockerfile根目录设置:API Platform的入口文件位于
public目录,Dockerfile需确保web服务器根目录指向该文件夹。以Apache为例:WORKDIR /var/www/html COPY . . RUN chown -R www-data:www-data public - 查看部署日志定位问题:执行
gcloud app logs tail -s default实时查看请求日志,确认是路由匹配失败还是服务器内部错误导致的404。
问题2:Docker Build提示
unable to prepare context: path "api" not found 修复步骤
该错误源于docker build命令指定的构建上下文路径不存在,按以下方式调整:
- 核对项目结构:若你的项目根目录就是代码目录(无
api子文件夹),去掉命令中的api路径,改为:
命令末尾的docker build -t gcr.io/[你的项目ID]/api ..代表以当前目录作为构建上下文。 - 若存在api子目录:确保执行命令时的当前工作目录为项目根目录,或明确指定子目录路径:
docker build -t gcr.io/[你的项目ID]/api ./api - 指定Dockerfile路径:若Dockerfile不在默认路径下,用
-f参数指定其位置:docker build -t gcr.io/[你的项目ID]/api -f ./path/to/Dockerfile .
内容的提问来源于stack exchange,提问作者Pax
相关产品推荐
相关产品推荐

