1

私はこれを文字通りほんの数時間前に機能させました。どちらかといえば、それを台無しにするために私が何をしたかわかりません。file_put_contents() を一時ディレクトリの test.txt ファイルに使用して、いくつかのものをテストしようとしています。テストしている ajax 呼び出しである場合があるため、print_r() または echo を使用できません。私が取得し続けるエラーは次のとおりです。

Warning: file_put_contents(temp/test.txt): The local filesystem is readonly, open failed in sub-dirs.../request.php on line 62

Warning: file_put_contents(temp/test.txt): failed to open stream: No such file or directory in sub-dirs.../request.php on line 62

私は制作中ではありません。これはローカルにあり、ドキュメントによると、これは機能するはずです:

開発用 Web サーバーにデータを保存する

Google App Engine for PHP は、PHP のストリーム API を介した Google Cloud Storage への読み取りと書き込みをサポートしています。開発者は、fopen()、fwrite()、get_file_contents() などの PHP ストリーム実装をサポートする任意の PHP 関数への URI としてオブジェクトを指定することにより、Google クラウド ストレージ内のオブジェクトに対して読み書きを行うことができます。

開発サーバーでは、Google Cloud Storage URI が指定されると、ユーザーのローカル ファイル システム上の一時ファイルを読み書きすることで、この機能をエミュレートします。これらのファイルはリクエスト間で保持されるため、コードを App Engine にデプロイする前にローカル開発環境で機能をテストできます。

fopen() などの PHP 開発サーバー ストリーミング呼び出しでは、「gs://」URL の file_get_contents() は、ローカル ファイルシステムの読み取りと書き込みによってモックされます。

私はかなりイライラしているので、どんな助けも大歓迎です。賛成します。

4

2 に答える 2

7

SDK 1.9.18 以降では、dev_appserver はデフォルトでローカル ファイルの書き込みを無効にして、本番環境をより適切にシミュレートします。php.ini ファイルに「google_app_engine.disable_readonly_filesystem=1」を追加すると、ファイルの書き込みを有効にできます。

于 2015-03-03T01:01:55.270 に答える
2

あなたの言うとおりですが、開発サーバーは Google Cloud Storage をシミュレートできるはずです。現在、問題があります (ここで報告されています。スターを付けてください)。

SDK バージョン 1.9.18 を使用している場合は、1.9.17 に戻すだけで動作するはずです (少なくとも私はそうでした)。

于 2015-02-27T22:09:29.973 に答える