无法使Google App Engine PHP教程正常工作

3

我正在跟随GAE PHP教程,但是我无法使本地开发服务器正常响应。

我使用以下命令运行:

dev_appserver.py --php_executable_path=/usr/bin/php --host=192.168.33.44 ./

它开始运行得很好。当我查看http://192.168.33.44:8080/时,日志显示:

INFO 2016-10-12 07:55:06,264 module.py:788] default: "GET / HTTP/1.1" 200 -

但我得到了一个空白页面。教程中没有解释如果出现问题该怎么做。

到目前为止,我已经:

  • 尝试了PHP 5.5和5.6(remi):没有区别
  • 将损坏的PHP放入helloworld.php:没有错误
  • 将处理程序更改为- url:/:在/上是空白页,任何其他URL都是404页面
  • 搜遍了Google文档:没有帮助
  • 搜遍了Google:没有帮助
  • 问了橡皮鸭子:没有帮助

我正在通过Vagrant和Google Cloud SDK 129.0.0运行Centos 7.2。

非常感谢您提供任何形式的帮助。

【编辑】

根据要求提供额外数据

$ which php
/usr/bin/php


$ /usr/bin/php -v
PHP 5.5.38 (cli) (built: Sep 19 2016 13:45:10)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies


$ which python
/usr/bin/python


$ /usr/bin/python -V
Python 2.7.5

$ cat app.yaml
runtime: php55
api_version: 1

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


$ cat helloworld.php
<?php

echo 'Hello, World!';


$ dev_appserver.py --php_executable_path=/usr/bin/php --host=192.168.33.44 ./


Updates are available for some Cloud SDK components.  To install them, please run:
$ gcloud components update

INFO     2016-10-13 08:21:22,699 devappserver2.py:769] Skipping SDK update check.
INFO     2016-10-13 08:21:22,730 api_server.py:205] Starting API server at: http://localhost:46453
INFO     2016-10-13 08:21:22,737 dispatcher.py:197] Starting module "default" running at: http://192.168.33.44:8080
INFO     2016-10-13 08:21:22,738 admin_server.py:116] Starting admin server at: http://localhost:8000
INFO     2016-10-13 08:21:34,142 module.py:788] default: "GET / HTTP/1.1" 200 -

访问http://192.168.33.44:8080/时,Chrome返回的响应头信息:

Cache-Control: no-cache
Content-Length: 0
Content-Type: text/html
Date: Thu, 13 Oct 2016 08:21:34 GMT
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Server: Development/2.0
我从129更新到130,但问题仍然存在。

为了确保全面,发布完整的控制台输出,发布您的app.yaml和脚本处理程序文件内容。此外,请验证您安装了哪个版本的PHP和Python。 - BrettJ
看起来很不可能,但如果省略 --host 参数并让其默认为 localhost,你是否仍然会得到相同的结果? - BrettJ
@BrettJ 尝试通过curl本地访问,但仍然得到空响应和访问日志中的命中。 嗨@Tom!使用--admin_host=0.0.0.0我可以看到int实例页面。从一个条目开始。在第一次请求之后,显示原始实例(/和favicon.ico)的2个请求,并列出另一个实例。每个请求的原始实例增加2,与访问日志活动匹配。 - Chris Armitage
尝试省略 --php_executable_path=/usr/bin/php 标志。它并不总是必需的。我开始认为这是关于Centos或Vagrant的特定问题,而Vagrant似乎更有可能。 - BrettJ
缺少php_executable_flag运行失败。我要尝试在不同的操作系统上运行,看看是否有运气。 - Chris Armitage
显示剩余2条评论
1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
6
原来问题是一个微不足道的疏漏...
dev_appserver.py --php_executable_path=/usr/bin/php --host=192.168.33.44 ./
应该已经完成。
dev_appserver.py --php_executable_path=/usr/bin/php-cgi --host=192.168.33.44 ./

App Engine要求使用php-cgi二进制文件,而不是cli文件。我曾经在文档中遇到这个问题,但是忘记回来把答案发出来了。


谢谢!这是一个难题,而且这似乎是我在网上找到的唯一答案。谷歌的文档相当贫乏,按照他们的教程进行操作几乎肯定会陷入困境。 - user7180

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,