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

PHP将文件夹所有者更改为apache,php,apache,permissions,Php,Apache,Permissions,所以我用FTP创建了几个目录和文件,因此所有者是我用来登录服务器的用户名。现在我想允许网站用户上传图片到这些目录。不幸的是,对于存储图像的网站来说,它应该归Apache所有。我怎样才能解决这个问题?我一直在读这方面的文章,但无法直接找到答案 我没有SSH,所以我想所有的命令行内容都不适用于我 编辑 然后我尝试使用apache再次创建文件夹,但现在我当然无法使用ftp将任何文件写入这些目录。朋友看起来我在php中工作,一些版本改变了解决方案,然而,最常见的情况是,您需要存储,需要创建一个数据库并将

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

我没有SSH,所以我想所有的命令行内容都不适用于我

编辑


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

朋友看起来我在php中工作,一些版本改变了解决方案,然而,最常见的情况是,您需要存储,需要创建一个数据库并将其导入esu代码,该代码也可用于您希望出现的某些图像,再加上最明智的做法,您需要创建一个数据库,其中包含实现、导入所需的字段,并将其放入计划的文件目录中,您还建议使用aptana Studio 3极大地促进了代码的创建,并且低xampp它已经与apache集成在一个地方,这将帮助您解决很多安装问题只要看看youtube,他将描述

,前提是至少有一个目录是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); 
?>

现在,在浏览器上调用您的.serv.er/makedirs.php,运行一次makedirs.php

编辑:

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

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

编辑2:


添加了umask,以确保apache创建的文件夹可供所有人写入

但是,如果不删除并重新制作目录,就没有办法做到这一点?@arbitter,我已经根据您的评论编辑了我的答案。您是我们正在谈论的服务器的管理员吗?它是共享服务器,所以不,我不是。我也不能从ftp写入使用mkdir创建的目录。我在我的网站主机上问了我的问题,然后显然,在.htaccess文件中插入一些代码使该网站在PHP5.4而不是5.3上运行,也解决了这些所有者问题。您甚至可以在其中添加一个
chown
$oldsmask…;mkdir(…);chown($file,$user);umask(…);