无法使用PHP写入Google App Engine开发服务器上的文件


Cannot write to file on Google App Engine Dev server with PHP?

就在几个小时前,我确实完成了这项工作。不确定我做了什么把它搞砸了,如果有的话。我正在尝试将file_put_contents()用于临时目录中的test.txt文件,以测试一些内容。我不能使用print_r()或echo,因为有时它是我正在测试的ajax调用。我不断得到的错误是:

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云存储进行读写。开发人员可以通过将Google云存储中的对象指定为任何支持PHPs Streams实现的PHP函数(如fopen()、fwrite()或get_file_contents())的URI来读取和写入该对象。

在开发服务器中,当指定Google云存储URI时,我们通过读取和写入用户本地文件系统上的临时文件来模拟此功能。这些文件在请求之间保留,允许您在将代码部署到App Engine之前在本地开发环境中测试功能。

在PHP开发服务器流式调用(如fopen()、'gs://'url上的file_get_contents())中,通过读取和写入本地文件系统来模拟。

我很沮丧,所以非常感谢任何帮助。将投赞成票。

Staring SDK 1.9.18,dev_appserver默认禁用本地文件写入,以更好地模拟生产环境。您可以通过在php.ini文件中添加"google_app_engine.disable_readonly_filesystem=1"来启用文件写入。

虽然你是对的,开发服务器应该能够模拟谷歌云存储,但目前有一个问题(在这里报告,请随意加入)。

如果您使用的是1.9.18版本的SDK,只需恢复到1.9.17,它应该可以工作(至少对我来说是这样)