【问题标题】:mkdir(folder_name) with 755 permission in phpphp 中具有 755 权限的 mkdir(folder_name)
【发布时间】:2011-09-20 16:44:15
【问题描述】:

我的网络应用程序托管在 /var/www 文件夹中。我正在从 Web 应用程序的 PHP 脚本之一创建一个文件夹。创建文件夹的默认权限是drwx------,即700。但我希望该文件夹至少有755权限。

到目前为止,我尝试了:mkdir($path, 0755)chmod($path, 0755) PHP 函数,但没有任何成功。

请问有人知道如何解决我的问题吗?

在此先数以百万计的感谢。

【问题讨论】:

  • 请设置error_reporting( E_ALL ) 以确保您不会被警告权限不足。 mkdir 命令是否失败?您可能对尝试写入的位置没有写入权限(或者路径可能不正确)。
  • 不,我自己创建一个文件夹,但正如我上面所说,它的权限是 700。
  • @Bakhtiyor,当您尝试创建该文件夹时,该文件夹是否已经存在?
  • 不,每次运行脚本时都会创建文件夹。

标签: php filesystems file-permissions mkdir


【解决方案1】:

您是否尝试过更改 umask ?

看看这里:http://nl3.php.net/manual/en/function.umask.php

最简单的方法:

$oldmask = umask(0);
chmod($path, 0755);
umask($oldmask)

【讨论】:

    【解决方案2】:

    由于您的默认权限为 700,这意味着父目录(您尝试在其中创建文件夹的目录)没有组所有者或其他用户的 rw 权限。大多数情况下,正在运行的恶魔(httpd)不是父文件夹的所有者,因此无法修改目录。

    简单来说,php 脚本无权修改或添加新目录。您需要将父文件夹的权限更改为至少drwxrw-rw-(或0755)。

    使用 ssh、cpanel 或 ftp 客户端来执行此操作。如果您使用 php 脚本执行此操作,您将再次以同样的问题结束,因为父级的父级将再次出现 0700。;)

    【讨论】:

      猜你喜欢
      • 2011-12-14
      • 1970-01-01
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      • 2011-04-15
      相关资源
      最近更新 更多