【问题标题】:GAE, can't get PHP to workGAE,无法让 PHP 工作
【发布时间】:2025-12-27 19:20:15
【问题描述】:

我需要在 GAE 上设置一个简单的页面,这基本上是为想要免费托管的人准备的。该页面有一个联系表,我用 PHP 编写了一个脚本。即:index.html,表单动作调用contact.php。尽管将代码放在 index.html 上并调用它,但无论如何都没有产生任何结果。

我不知道如何让 PHP 在 GAE 上运行。我尝试多次更改 app.yaml 设置,并且根本无法识别 PHP(即使是像

这样简单的东西)
<?php echo "test"; ?> 

不产生任何结果)或浏览器尝试强制下载脚本。

这是我当前/最后一个 app.yaml:

application: [myappidentifier]
version: 1
runtime: php
api_version: 1

handlers:
- url: /
  static_files: index.html
  upload: index.html

- url: /contact.php*
  script: contact.php

- url: /(.*\.(gif|png|jpg|svg|ico|js|css))
  static_files: \1
  upload: (.*\.(gif|png|jpg|svg|ico|js|css))

我确定这都是我的错,不知何故。 :) 我该如何解决这个问题,以便 PHP 在 GAE 上按预期工作?

感谢您的宝贵时间。


编辑:好吧,不要使用 PHP mail() 方法,他们已经在 GAE 上禁用了它,似乎? https://developers.google.com/appengine/docs/php/mail/

但是,总的来说,PHP 似乎不适用于我当前的设置。 感谢您的帮助!

【问题讨论】:

    标签: php google-app-engine


    【解决方案1】:

    您的contact.php处理程序中有一个不必要的*,请尝试将其更改为:

    - url: /contact.php
      script: contact.php
    

    此外,在 AppEngine 上更常见的工作方式是不为脚本使用文件扩展名,因此将您的处理程序更改为:

    - url: /contact
      script: contact.php
    

    然后将您的链接和表单目的地更改为 /contact 而不是 /contact.php

    【讨论】:

    • 非常感谢您的回复!正如我所提到的,我发布的 yaml 是我最后一次尝试,我看到有人使用类似的东西并尝试了一下。不幸的是,我已经尝试了您提出的建议,但没有结果。我花了 6 个多小时阅读文档并在 Google 上搜索答案,但似乎没有任何效果。如果我在 index.html 上放置一个简单的 echo 语句,则它不会被识别为 PHP,实际上会出现在源代码中。从 PHP 脚本中,它会生成一个空白页面。所以就像它没有被识别为PHP一样。有任何想法吗?谢谢!
    • 如果你将 PHP 代码放在一个 .html 文件中,那么不,它不会被 AppEngine 识别为 PHP,只有在使用 脚本指定文件时才会发生这种情况: 指令,在您的 app.yaml 文件中,.html 文件被指定为静态文件。
    • 对于 .php 文件,如果您得到一个空白页面,这通常表示某种 PHP 错误,您能否查看 AppEngine 日志并查看是否有任何相关条目文件?
    • 我明白了,我习惯于将 HTML 文件设置为 PHP。我将尝试将其设置为脚本。至于日志文件,你是对的!有一个小的串联疏忽导致了错误。现在似乎可以工作了,非常感谢您的帮助!