代码之家  ›  专栏  ›  技术社区  ›  Mike Keller

mkdir()不工作

  •  9
  • Mike Keller  · 技术社区  · 16 年前

    我的密码

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

    和

    mkdir("relative/path", 0777);
    

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

    有什么想法吗?

    编辑:我确实打开了错误报告功能,但令我失望的是,我已经完成了777条路径,只是为了确保这不是问题所在。这一定是一件非常简单的事情。

    编辑编辑:为所有回复建议的人投票…但我不会选择一个答案,因为这仍然没有解决,但我再次认为这将是那些永远开放的答案之一。

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

    8 回复  |  直到 16 年前
        1
  •  -2
  •   Daniel Egeberg    16 年前

    路径名参数周围缺少引号。

        2
  •  15
  •   ajm    16 年前

    所有的父目录都存在吗?

    如果没有,则需要启用递归(假设此处为php5):

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

    编辑:没有看到隐藏的评论说 var downward被设置为world-writable,所以我敢打赌目录路径是存在的,上面的内容不会有帮助。对不起的!

        3
  •  3
  •   janmoesen    16 年前

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

    为了回应前面的建议,请指定您收到的错误消息。如果没有收到,请在打电话前使用: error_reporting(-1); // ALL messages 和 ini_set('display_errors', 'On'); .

        4
  •  1
  •   pankar    13 年前

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

        5
  •  0
  •   Dominique    16 年前

    你试过最短的测试吗?

    mkdir('目录',0777);

    如果这不起作用,我将尝试使用标准chmod(如0755)创建(这完全是随机猜测,可能服务器不允许通过php创建0777)

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

        6
  •  0
  •   Declan Land    8 年前

    如果有人被这个问题困扰……我可以给你一个答案,我花2个小时去寻找……我尝试使用完整的路径和“..mydirectoryname”。

    尝试使用:

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

    而不是。。

    mkdir("../mydirectoryname", 0777, true);
    
        7
  •  0
  •   Chihab    7 年前

    对于将来的引用,问题可能来自于您试图创建新目录的目录没有足够的权限。

    例如,您的索引目录可能如下所示: index.php new_dirs_here

    如果 new_dirs_here 没有足够的权限,则无法在内部创建目录。

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

    我现在不担心安全问题,只是想解决眼前的问题。当然,您可以查找更好的权限设置,但您的想法是 这里是新的 应该有足够的权限。

    然后,你的 mkdir() 催款应该行得通。

    祝你好运

        8
  •  -2
  •   Alex Pliutau    16 年前

    必须用引号括起该属性:

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