【问题标题】:folders created with php, are being owned by apache用 php 创建的文件夹归 apache 所有
【发布时间】:2012-07-04 16:21:08
【问题描述】:

我们公司使用的是linux专用服务器。

每当我们使用 php 脚本创建文件夹时,apache 都拥有该文件夹,每次我必须通过 root 连接到服务器才能将所有者更改为用户和权限

但我不知道应该更改哪个设置才能解决此问题。

我尝试打开/关闭安全模式,但没有成功。

如果有人可以帮助我,我会很高兴

提前致谢

【问题讨论】:

  • 您使用的是什么 FTP / 文件程序?
  • 创建文件夹后可以使用chmod()。

标签: php apache chown


【解决方案1】:

您是否尝试过使用chown PHP commandchmod PHP command

【讨论】:

    【解决方案2】:

    2 种方法可以做到这一点:

    chown() 可以通过执行该函数来更改文件权限。

    或者如果您能够使用 FTP 移动文件,您可以将文件拖到文档根目录 (public_html/) 之外,然后右键单击 -> 更改文件的文件权限。

    CHMOD 是您想要查看的内容。 777 将允许任何人和所有内容访问您的文件,您可以将其用作测试以确保您拥有文件权限。我不建议保留777 的权限。

    【讨论】:

      【解决方案3】:

      这是一个可移植性问题,取决于您的服务器配置(即带有 SuExec 的 mod_php 或 FCGI)。

      您可以在创建文件后立即尝试使用chown 函数,但这只有在您知道实际所有者应该是谁的情况下才有效(并非总是如此)。为了克服这个问题,I wrote a simple method 试图找到最好的文件模式,始终确保读取和写入(以及目录的执行)而不给予过多的权限:

      function xChmod($path, $chmod = null) // adapted from phunction
      {
          if (file_exists($path) === true)
          {
              if (is_null($chmod) === true)
              {
                  $chmod = (is_dir($path) === true) ? 777 : 666;
      
                  if (extension_loaded('posix') === true)
                  {
                      $user = posix_getpwuid(posix_getuid());
      
                      if (array_key_exists('name', $user) === true)
                      {
                          $chmod -= (in_array($user['name'], explode('|', 'apache|httpd|nobody|system|webdaemon|www|www-data')) === true) ? 0 : 22;
                      }
      
                  }
              }
      
              return chmod($path, octdec(intval($chmod)));
          }
      
          return false;
      }
      

      基本上,如果您省略第二个 $chmod 参数,默认情况下它将使用 0777 用于文件夹,0666 用于文件,但是,如果 PHP 在非标准用户下运行,它将减少模式 22,产生 0755 用于文件夹和 0644 用于文件。请记住,这仅适用于已经存在的文件,因此如果您要创建目录you'll need to have additional precautions

      【讨论】:

      • 它不会将所有者更改为我想要的用户,但它使文件夹可写,非常感谢。
      猜你喜欢
      • 2011-07-12
      • 2011-07-29
      • 2014-01-04
      • 2013-12-22
      • 2016-06-14
      • 2016-04-10
      • 2013-11-13
      • 2015-06-14
      • 1970-01-01
      相关资源
      最近更新 更多