【问题标题】:Google App Engine app.yaml handler for PHP filePHP 文件的 Google App Engine app.yaml 处理程序
【发布时间】:2020-03-19 04:42:12
【问题描述】:

我有一个 Codeigniter 站点部署到 Google App Engine PHP 7 环境。然后我添加了一个简单的 PHP 文件,名为 hello.php:

<?php
  echo "Hello World";
?>

并将其放在站点根目录中,如下所示:

Root
--application
--css
--js
--system
--hello.php

当我从 Cloud Shell localhost 访问 hello.php 时,它会完美加载:

https://8080-dot-1234567-dot-devshell.appspot.com/hello.php

当我在部署到 Google App Engine 后访问 hello.php 时,我收到 404 Page Not Found 错误。由于 GAE 不支持 .htaccess 文件,我知道处理路由的正确方法是通过 app.yaml 文件。这是我的app.yaml 文件:

runtime: php72

handlers:
- url: /js
  static_dir: js

- url: /css
  static_dir: css

- url: /images
  static_dir: images   

- url: .*
  script: auto

js、css 和 images 文件夹中的所有资产都可以通过 GAE 访问,但无法访问 hello.php。我应该如何修改这个app.yaml 文件,以便路由在GAE 上提供hello.php 文件?

【问题讨论】:

  • 相对于您提到的站点目录结构,您的app.yaml 位置是什么?它应该与您的hello.php 文件并排放置。

标签: php codeigniter google-app-engine routing app.yaml


【解决方案1】:

我能够重现您的问题并发现该错误似乎与您的 php 文件的名称有关。

正如 app.yaml documentation 中提到的,脚本字段定义了应用程序的入口点,但唯一允许的值是“auto”,GAE 将在 index.php 或 public/index.php 中查找控制器,因为你的名为 hello.php GAE 无法找到它。只需更改文件名即可。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2017-02-02
    • 2018-04-24
    • 2014-02-06
    • 1970-01-01
    • 1970-01-01
    • 2019-09-17
    • 1970-01-01
    • 2011-07-01
    • 2015-05-15
    相关资源
    最近更新 更多