应用引擎 App.yaml。如果我想使用源 php 文件,应该包括什么?

App engine App.yaml. what to include if I want to use a source php file?

我有一个 search.php 文件,它应该与我的 index.php 文件交互以实现自动完成。 search.php文件内容Google云端SQL信息。在我的 app.yaml 中,我为云 SQL 指定了 env_variables,但我不确定我应该在 app.yaml 中为 search.php 文件写什么。 我的 app.yaml 就像:

runtime: php55
api_version: 1
threadsafe: yes
handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: .*
  script: index.php

env_variables:

  MYSQL_DSN: mysql:unix_socket=/cloudsql/myprojectexample:us-central1:product;dbname=pd
  MYSQL_USER: root
  MYSQL_PASSWORD: root

我的 index.php 的一部分:(只是告诉你 search.php 将被使用的地方)

<script>
  $(function() {
    $( "#456" ).autocomplete({
      source: 'search.php',
      minLength: 3
    });
  });
  </script>

那么,我应该如何在 App.yaml 中包含 search.php 才能让它发挥作用?到目前为止,应用引擎不会与 Cloud SQL 交互。

谢谢!

您可以为 search.php 文件定义一个处理程序,并让您的 .* 处理程序捕获其他所有内容。例如

runtime: php55
api_version: 1
threadsafe: yes
handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: /search.php
  script: search.php
- url: .*
  script: index.php

将按顺序读取处理程序,直到找到匹配项。所以任何时候你尝试调用 search.php 它都会指向你的 search.php 文件,任何时候任何其他文件被调用它都会指向 index.php

您还可以使用 app.yaml 文件来组织您的处理程序或端点。

例如:

handlers:
- url: /api/search.php
  script: search.php
- url: /api/authenticate.php
  script: authenticate.php

您也可以使用它来消除在请求中指定 .php 或文件扩展名的需要。

handlers:
- url: /search/.*
  script: search.php

现在,无论您何时调用 /search 或 yourappdomain.appspot.com/search,您都会点击搜索页面。 您可以根据需要添加任意数量的处理程序,但请记住,它们是按照写入的顺序进行搜索的,一旦找到匹配项,就会立即执行该匹配项。那么你终于掌握了所有处理程序!