【发布时间】:2012-09-12 14:35:12
【问题描述】:
我使用一个脚本使用 PHP 在服务器上创建一个文件夹,如下所示:
mkdir("folder/test/", 0777);
然后我使用另一个脚本创建一个文件并将一些内容放入其中,如下所示:
fwrite( fopen('folder/test/filename', 'w'), 'Test text' );
然而,这会导致:
Warning: fopen() [function.fopen]: SAFE MODE Restriction in effect. The script whose uid is XXXXX is not allowed to access ...
但是,如果我尝试在父目录中创建文件,如下所示:
fwrite( fopen('folder/filename', 'w'), 'Test text' );
它工作正常。父文件夹(上例中的“文件夹”)设置为 777“手动”,因此仅当我第一次使用 mkdir 创建文件夹然后尝试在同一文件夹中写入时才会出现“安全模式限制”。这怎么可能?
【问题讨论】:
-
新文件夹有什么所有者:组?
-
检查测试文件夹的权限。可能是安全模式不允许您 mkdir 具有 777 权限的目录。This 可能会有所帮助。
-
嗯..我该如何检查?实际上查看终端中的权限显示新创建的文件夹的 dr-xr-xr-x 似乎 PHP 不遵循命令并将其设置为脚本中的 777。这可能与安全模式问题有关吗?
-
@VladTeodorescu 很好的提示,试过了,文件夹的权限现在是:drwxrwxrwx。但是安全模式限制仍然出现......有什么想法吗?