1

Google Appengine PHP SDK が動作するように 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 Technologies

からの出力whereis php-cgiは次のとおりです。

php-cgi: /usr/bin/php-cgi

私は php_runtime.py ファイルを見ましたが、文字列さえ見つからないNo input file specifiedので困惑しています!

問題が何であるか誰にも分かりますか?

編集:fgrep -r 'No input file specified' * App Engine ディレクトリで実行しようとしましたが、何も表示されません!!!

編集 2:メッセージNo input file specifiedは、PHP インタープリターからのもので、App Engine SDK ではないようです。しかし、私はまだ理由がわかりません?! とファイルは同じディレクトリにあり、チュートリアル ページからコピーされますapp.yamlhelloworld.php

4

1 に答える 1

1

問題は、システムのインストール方法にあるようです。私の /home ディレクトリは、実際には /var/home へのシンボリック リンクです (2 つのパーティション: / と /var があります) が、PHP にはopen_basedir というファイルのロード元を制限するディレクティブがあります。デフォルトでは /home が含まれますが、PHP はシンボリック リンクを解決するため、すべてのファイルは /var/home および /var (またはそれ以下) からのものであり、含まれません。

したがって、解決策は、ファイルのディレクティブで/homeに置き換えることです。/var/homeopen_basedir/etc/php/php.ini

編集: また、AppEngine PHP SDK をインストールしたので、/opt/google-appengine-phpそのディレクトリも追加する必要がありopen_basedirました。

于 2013-06-14T12:46:37.797 に答える