【问题标题】:How do I configure PHP to have permission to create directories and make files?如何配置 PHP 以获得创建目录和制作文件的权限?
【发布时间】:2011-02-08 18:30:54
【问题描述】:

我有一个接收上传的 PHP 脚本,它可以在 mamp 中正常工作,根据需要创建目录和接收文件,但是当我将它移动到服务器时,它会出错,说它也不能这样做。

[编辑] 需要明确的是,脚本将接收一个文件,在存储它之前,它可能需要在它自己下面为该文件创建一个目录。所以伪代码将是......

$path = getNewPath();
mkdir("./$path", RECURSIVE);
fwrite($path/$newFile);

我已将文件 chown 给 apache 并赋予它 777 权限,但没有骰子。我假设必须有一些 PHP 配置来指定它,但无法弄清楚它在哪里。 httpd.conf 很长,略读后,我没有看到任何相关内容。

我确定我遗漏了一些明显的东西,但无法弄清楚它是什么。

TIA

【问题讨论】:

  • 你的服务器在什么操作系统上运行?

标签: php


【解决方案1】:

脚本必须能够写入父目录才能创建子目录,因此 chmod 777 父目录,例如 httpdocs/uploads/ 或存储这些文件的任何位置。

【讨论】:

    【解决方案2】:

    chown 或 chmod 777 脚本要写入(创建)文件的目录,而不是脚本本身。

    【讨论】:

    • 脚本必须创建这些目录,所以,我无法主动预chown或预chmod它们
    • 脚本必须能够写入父目录才能创建子目录,因此 chmod 777 父目录,例如 httpdocs/uploads/ 或存储这些文件的任何位置。还有什么错误?如果没有,请将error_reporting(E_ALL) 添加到您的脚本中。您是否收到安全模式限制错误?
    • @dredel 但你可以先chmod webroot的目录(递归),然后你的脚本应该能够创建这些目录和文件。另外在创建的文件和目录的脚本中使用chmodchown
    • @Dr.Dredel,是的,正如@Rob 所说,chown 或 chmod 777 是它想要创建目录的父目录。如果您希望它在根目录下创建,地狱,777 根目录本身:)
    • 最好使用 chown 和 chmod 755 或 chgrp 和 chmod 775。chmod 777 太不安全了。
    【解决方案3】:
    chmod("/somedir/somefile", 0777);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-07
      • 2012-02-11
      • 2018-08-18
      • 1970-01-01
      • 2016-01-17
      • 2015-07-28
      • 1970-01-01
      • 2012-09-17
      相关资源
      最近更新 更多