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

时间:2017-05-15 09:53:45

标签: google-app-engine google-cloud-sql

我有一个search.php文件,它应该与我的index.php文件交互以进行自动完成。 search.php文件内容为Google Cloud SQL信息。在我的app.yaml中,我已经为cloud 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交互。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以为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,您就会点击搜索页面。 您可以根据需要添加任意数量的处理程序,但请记住它们按照编写顺序进行搜索,并且一旦找到匹配项,就会执行匹配。那么你最后会抓到所有的处理程序了吗?