我有一台运行 Ubuntu 10.04 的专用服务器,有 10 个用户。几周前,我为每个用户配置了带别名的 Apache,每个人都在自己的 /home/ 中有一个 www/,并且我为每个 www/ 指定了一个子域
Alias /foo /home/foo/www/
<Directory /home/foo/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
它对普通网站来说运行良好,但当我想在 PHP 中使用一些 shell_exec 时,我遇到了一些权限问题。Apache 没有足够的权限写入文件夹。我尝试将 www-data 组添加到 www/ & 以授予我的用户 www-data 权限,但它不起作用...
以下是 ls -a 命令的结果
drwxr-xr-x 8 foo www-data 4096 2012-07-24 08:44 www/
有什么线索可以解决这个问题吗?
答案1
您需要使用用户目录而是使用 Apache 中的模块来实现这一点。
它允许 Apache 访问用户主目录中的特定目录 - 默认情况下
/主页/foo/public_html
http://www.techytalk.info/enable-userdir-apache-module-ubuntu-debian-based-linux-distributions/有一个关于如何设置的非常好的指南。
答案2
根据您当前对 www 文件夹的权限方案,-groupwww-data
仅具有对该目录的读取和执行权限。使用以下命令授予其写入权限:
chmod 0775 www
如果目录包含更多目录,需要递归应用新的权限,可以运行以下命令:
find www -type d -exec chmod 0775 '{}' \;
find www -type f -exec chmod 0664 '{}' \;