如何使用挂载的webroot更改apache中上传文件的默认权限?

时间:2012-05-17 21:36:19

标签: apache file-permissions

我有一个ubuntu服务器11.10,带有apache 2.2.20,php 5.3.6和一个Joomla cms的安装。我使用了额外的硬盘作为我的网络服务器存储并将其安装到/ data / www /(我希望它不是我的问题所在!)。

我已将我的网络根目录中的所有文件和文件夹的权限设置为755,并且将用户组设置为[默认ubuntu用户(在我的情况下为收音机)]:www-data。

过去几天我遇到了严重的问题,joomla没有显示新的上传图片和其他文件,我也无法安装任何扩展。经过几个小时的搜索后,我发现上传的文件没有相应的权限(它们是-rw -------),Joomla应用程序在上传后无法读取,复制或移动它们。

我想知道如何设置默认权限,以便我上传的所有文件都使用它?

PS:我测试了umask但它没有做任何事情。我认为这与我的问题无关。

2 个答案:

答案 0 :(得分:1)

我实际上遇到了同样的问题。我正在使用plesk共享主机。我做了大约20个小时的研究,并提出了一些关于需要做什么的答案。首先,apache处理的任何内容都会自动提供给apache用户组。这很好......问题是apache将php作为模块处理,因此一旦使用php通过apache执行操作就无法更改。对我来说最有效的修复方法是更改​​php和apache以使用快速cgi执行,然后在上传完成后更改apache分配的默认权限。

你可以采取的第二个溃败是chown everything然后使用ftp进行安装。我遇到的主要问题是,因为joomla在通过php执行命令时使用apache,所以使用ftp作为安装程序添加的任何新文件都会通过它提供权限,实际上不允许apahe / php进行任何更改除非文件被赋予777权限,这是一个安全问题。

它有点像这样....作为一个例子。您可以通过ftp安装组件。因为ftp用户名现在被指定为所有者。 Apache不被视为用户组或所有者的一部分。因此,如果您想使用joomla进行更改...必须为其分配777权限。我发现了这一点,因为我想我会把所有东西都装到我的ftp上,当我回到joomla并进入系统信息......它说现在一切都是不可写的。

希望这对你有所帮助......你只需环顾四周看看什么效果最好。

答案 1 :(得分:0)

感谢您的回答 经过几个小时的研究和尝试,我设法通过禁用FTP(我使用vsftpd)并将umask添加到apache配置而不是php文件来解决我的问题。现在一切正常,所有chmod都没问题(755)。

BTW:我不知道为什么上传文件时访问量最少。