Google App Engine& PHP写文件

时间:2016-01-06 13:22:18

标签: php google-app-engine

我正在尝试使用Google App Engine进行开发。

我正在尝试将数据写入文本文件。

最初,我的php代码是这样的:

function putFile($nstr,$fn){

 $filename = $fn;
 $file = fopen( $filename, "w" );




 if( $file == false )
{
  echo ( "Error in opening new file" );
  exit();
}
fwrite( $file, $nstr );
fclose( $file );

}

我运行GAE启动器并访问了http://localhost:9080

显示错误消息:

警告:本地文件系统是只读的,打开失败 警告:无法打开流:没有这样的文件或目录.... 打开新文件时出错

在此之后,我稍微更改了我的代码以查看我是否可以自行解决问题...

新代码:

function putFile($nstr,$fn){

 $filename = $fn;

 $file = fopen( 'gs://#default#/'.$filename, "w" );

  if( $file == false )
  {
     echo ( "Error in opening new file" );
     exit();
  }
  fwrite( $file, $nstr );
  fclose( $file );

   }

我再次运行应用程序。根本没有显示错误消息。

但是我的文本文件没有变化。

我不明白我的错误。

  • 我是否错误地编写了代码?
  • 这是与文件权限相关的吗?
  • 也许我不明白GAE在文件读写方面是如何工作的?

1 个答案:

答案 0 :(得分:2)

鉴于您是从GAE Launcher运行并访问http://localhost:9080/,我假设您在使用本地计算机上的开发服务器进行测试时遇到此错误。开发环境通过写入本地文件系统来模仿生产环境。

标题为The php.ini File的文章说明了本地开发环境中的PHP应用程序特权:

  

默认情况下,不允许PHP应用程序写入文件系统。

根据this response公开问题11729,此功能已在App Engine SDK的 1.9.18 版本中添加,但相关{{3}中未提及}}

google_app_engine.disable_readonly_filesystem 文件中将 1 设置为 php.ini 应解除此限制,尽管只是为您的开发环境。除此之外,问题可能