【问题标题】:PHP change folder owner to apachePHP将文件夹所有者更改为apache
【发布时间】:2013-11-13 14:30:09
【问题描述】:

所以我用 FTP 创建了几个目录和文件,因此所有者是我用来登录服务器的用户名。现在我想允许网站的用户将图像上传到这些目录。不幸的是,对于存储图像的网站,它应该归 Apache 所有。我怎样才能解决这个问题?我一直在阅读这方面的内容,但无法直接找到答案。

我没有 SSH,所以我猜所有命令行的东西都不适用于我。

编辑

我尝试使用 apache 再次创建文件夹,但现在我当然不能使用 ftp 将任何文件写入这些目录。

【问题讨论】:

    标签: php apache permissions


    【解决方案1】:

    假设至少一个目录是 apache 用户可写的(让我们称这个目录为 'writeabledir',它可能是你的根目录'/'),你必须删除你通过 ftp 创建的文件夹并创建一个 php 脚本创建您需要的目录。 例如,如果您想要一个名为 users 的目录,并在其中包含另一个名为 upload 的目录

    在您的服务器上创建文件 makedirs.php。

    <?php
      $oldumask = umask(0); 
      mkdir("writeabledir/users/upload",0777,true); // or even 01777 so you get the sticky bit set 
      umask($oldumask); 
    ?>
    

    现在通过在浏览器上调用 your.serv.er/makedirs.php 运行一次 makedirs.php

    编辑:

    如果您不想删除并重新创建您的目录,您可以随时尝试从 ftp 更改文件权限。

    例如使用 FileZilla,只需右键单击所需的文件夹并将权限设置为 777。如果您的 ftp 用户没有权限执行此操作,则没有其他方法,除了要求管理员为您执行此操作.

    EDIT2:

    添加 umask 以确保 apache 创建的文件夹对每个人都是可写的。 (取自http://us3.php.net/manual/en/function.mkdir.php#1207)

    【讨论】:

    • 但是有没有办法做到这一点而不必删除并重新制作目录?
    • @arbitter,我已根据您的评论编辑了我的答案。您是我们所说的服务器的管理员吗?
    • 这是一个共享服务器,所以我不是。我也无法从 ftp 写入使用 mkdir 创建的目录。
    • 我在我的网站主机上问了我的问题,显然在 .htaccess 文件中插入了一些代码,使网站在 PHP 5.4 而不是 5.3 上运行,也解决了这些所有者问题。
    • 您甚至可以在其中添加chown:$oldmask...;mkdir(...);chown($file, $user);umask(...);
    【解决方案2】:

    朋友看起来我在php中工作,一些版本改变了解决方案,但最常见的是你已经想要存储它需要创建一个数据库并将其导入到esu代码中,该代码也适用于你的一些图像想来,加上最明智的做法是创建一个数据库,其中包含实现所需的字段,导入,放在您的日程安排的文件目录中,您还建议使用 aptana Studio 3 极大地方便了许多代码的创建东西和低 xampp 它已经与 apache 集成在一个地方将帮助你很多关于安装的任何问题只要看看他会描述的 youtube

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-30
      • 1970-01-01
      • 1970-01-01
      • 2012-12-05
      相关资源
      最近更新 更多