PHP将文件夹所有者更改为apache

时间:2013-11-02 14:20:54

标签: php apache permissions

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

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

修改

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

2 个答案:

答案 0 :(得分:1)

如果apache用户至少可以写一个目录(让我们调用这个目录'writeabledir',它可能是你的root目录'/'),你必须删除你通过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

答案 1 :(得分:-1)

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