【问题标题】:PHP 'fopen' fails in SAFE MODE Restriction in folder created through 'mkdir'PHP“fopen”在通过“mkdir”创建的文件夹中的安全模式限制中失败
【发布时间】: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。但是安全模式限制仍然出现......有什么想法吗?

标签: php fopen fwrite mkdir


【解决方案1】:

根据手动安全模式,自 php 5.3.0 起已弃用。尝试升级您的 php 版本或在 php ini 中关闭安全模式

【讨论】:

  • 那将是一个好主意,但由于我不是服务器的所有者,所以这不是一个选择。我正在寻找运行当前版本(5.1.6)的工作。 (相信我,我之前曾试图说服他们升级,但到目前为止没有运气......)。
猜你喜欢
  • 2011-07-07
  • 1970-01-01
  • 2011-11-01
  • 2018-04-30
  • 2018-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多