【问题标题】:php mkdir will only work when creating a folder inside a 777 folderphp mkdir 仅在 777 文件夹内创建文件夹时有效
【发布时间】:2016-08-24 02:49:59
【问题描述】:

我有一个名为“文件夹”的文件夹。我想用mkdir()在“文件夹”中创建一个名为“文件夹”的文件夹

但是,当“文件夹”设置为 755 时,无法创建文件夹。我可以让 mkdir 工作的唯一方法是制作“文件夹”777。这是典型的还是有其他问题? 755应该不能这样吧,777不是有安全隐患吗?

【问题讨论】:

  • 您需要提供有关目录所有权和用于创建目录的帐户的信息。
  • Unix Permissions。正如链接在更下方的一个表中所说的那样 755 = “文件的所有者可以读取、写入和执行该文件。所有其他人都可以读取和执行该文件。此设置对于所有人都使用的程序很常见用户。” 意味着只有该文件夹的所有者才能在其中写入内容。其他人只能读取和执行。 777没有限制
  • 我检查了错误日志,错误是“权限被拒绝”。那么我如何为 PHP 提供与 SSH 相同的访问权限呢?我使用 SSH 创建了“文件夹”目录。

标签: php mkdir


【解决方案1】:

对目录的 777 权限意味着每个人都可以访问读/写/执行(在目录上执行意味着您可以对目录执行 ls)。

如果您无法在文件夹中创建文件夹,请尝试以下这个。

   <?php
    // Desired folder structure
    $structure = './folders/folder/';

    // To create the nested structure, the $recursive parameter 
    // to mkdir() must be specified.

    if (!mkdir($structure, 0755, true)) {
        die('Failed to create folders...');
    }
    ?>

【讨论】:

  • 不幸的是,将递归设置为“真”也不起作用。我检查了错误日志,错误是“权限被拒绝”。那么我如何为 PHP 提供与 SSH 相同的访问权限呢?我使用 SSH 创建了“文件夹”目录。
  • 您是否尝试过 chown 您要创建文件夹的文件夹? chown -R o+w foldername/
  • 我是新手。当我这样做时,响应是“无效用户”。问题是 PHP 确实有权写入此文件夹,我不知道如何启用 PHP 的写入权限
猜你喜欢
  • 1970-01-01
  • 2018-08-29
  • 1970-01-01
  • 2011-08-22
  • 2022-12-03
  • 1970-01-01
  • 1970-01-01
  • 2014-11-30
  • 2010-11-22
相关资源
最近更新 更多