我的代码

mkdir("/some/absolute/path",0777);

mkdir("relative/path", 0777);

不起作用,安全模式已关闭,我什至尝试将所有父文件夹设置为 777。

有任何想法吗?

编辑:我确实打开了错误报告,令我沮丧的是,我对整个路径进行了 777 操作,只是为了确保这不是问题所在。这肯定是一件极其简单的事情。

编辑编辑:为所有回复建议的人点赞...但我不会选择一个答案,因为这个问题还没有解决,但我再次认为这将是永远悬而未决的问题之一。

编辑×3:所以我对这个问题有最不满意的解决方案......我从一个干净的虚拟机映像开始,重试它,现在它可以工作了。不是开玩笑。

有帮助吗?

解决方案

您缺少围绕路径名参数的引号。

其他提示

所有父目录都存在吗?

如果没有,您需要启用递归(在此处假设PHP5):

mkdir('/path/to/your/dir',0777,true);

编辑:没有看到隐藏的评论说每个目录 var 向下设置为全世界,所以我押注目录的存在,上面的路径将不会有帮助。对不起!

您是否试图像您一样递归创建这些目录 mkdir -p 在命令行上?如果是这样,请指定 true 作为第三个参数 mkdir.

只是要回应以前的建议,请指定您收到的错误消息。如果您没有得到任何,请在您的电话之前使用此信息: error_reporting(-1); // ALL messagesini_set('display_errors', 'On');.

您是否尝试过尽可能短的测试?

mkdir('目录',0777);

如果这不起作用,我会尝试使用像 0755 这样的标准 CHMOD 创建(这是完全随机的猜测,也许服务器不允许通过 PHP 创建 0777)

如果这不起作用,我会说服务器可能需要不同的设置/ php 文件夹上没有正确的文字,也许您可​​以询问您的主机提供商?

我有类似的问题,我发现我没有 可用空间 留在我的开车上。使用命令检查 df (在Linux上)您的驱动器有多满。在这种情况下,可能允许ROOT创建文件和文件夹,因为他有预留的空间。如果您从命令行运行脚本为 root 用户 - 没有错误,但是如果您的脚本由 apache, ,然后发生错误。

如果有人遇到这个问题。.我可以给你一个答案,我花了2个小时来查找..我尝试使用完整的路径和“ ../ mydirectoryname”。

尝试使用:

mkdir("./mydirectoryname", 0777, true);

代替..

mkdir("../mydirectoryname", 0777, true);

对于将来的参考,问题可能来自您尝试创建新目录的目录没有足够许可的可能性。

例如,您的索引目录可能看起来像这样:index.php new_dirs_here

如果 new_dirs_here 没有足够的许可,那么您无法在内部创建直接。

为了解决这个问题,我将使用命令:chmod 777 new_dirs_here

我现在不必担心安全性,只是试图解决直接问题。您当然可以查找更好的权限设置,但想法是您 new_dirs_here 应该有足够的许可。

然后,你 mkdir() Dunction应该正常工作。

祝你好运

您必须在引号中获取属性:

mkdir('path/to/your/dir','0777');
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top