我正在尝试使的helloworld示例正常工作,但我似乎无法让dev_appserver运行。这是我使用的命令行和我得到的错误:
$ /opt/google-appengine-php/dev_appserver.py --php_executable_path=/usr/bin/php-cgi src
INFO 2013-06-14 02:50:09,070 sdk_update_checker.py:244] Checking for updates to the SDK.
INFO 2013-06-14 02:50:09,331 sdk_update_checker.py:260] Update check failed: HTTP Error 404: Not Found
INFO 2013-06-14 02:50:09,458 api_server.py:138] Starting API server at: http://localhost:39069
INFO 2013-06-14 02:50:09,647 dispatcher.py:164] Starting server "default" running at: http://localhost:8080
INFO 2013-06-14 02:50:09,650 admin_server.py:117] Starting admin server at: http://localhost:8000
ERROR 2013-06-14 02:50:09,717 php_runtime.py:199] The PHP runtime is not available because: No input file specified.php-cgi -v的输出是:
PHP 5.4.16 (cgi-fcgi) (built: Jun 7 2013 05:55:42)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologieswhereis php-cgi的输出是:
php-cgi: /usr/bin/php-cgi我看了php_runtime.py文件,但我甚至找不到字符串No input file specified,所以我很困惑!
有人知道问题出在哪里吗?
编辑:,我刚刚尝试在App目录下运行fgrep -r 'No input file specified' *,结果什么都没有出现!
编辑2: --似乎没有指定的消息输入文件来自PHP解释器,而不是App。但我还是不知道为什么!app.yaml和helloworld.php文件位于同一个目录中,并从教程页复制。
发布于 2013-06-14 12:46:37
问题似乎是我安装系统的方式。我的/home目录实际上是到/var/home的符号链接(我有两个分区:/和/var),但是PHP有一个指令来限制它从基狄尔加载文件的位置。默认情况下,它包括/home,但是PHP会解析符号链接,所以我的所有文件都来自/var/home和/var (或下面的任何内容)。
因此,解决方案是在我的/home文件的open_basedir指令中用/var/home替换/etc/php/php.ini。
编辑:另外,由于我在/opt/google-appengine-php中安装了AppEngine PHP,所以我也必须将该目录添加到open_basedir中。
https://stackoverflow.com/questions/17100570
复制相似问题