我正在尝试使用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 );
}
我再次运行应用程序。根本没有显示错误消息。
但是我的文本文件没有变化。
我不明白我的错误。
答案 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
应解除此限制,尽管只是为您的开发环境。除此之外,问题可能