让Apache2使用不同的用户创建文件

cover-image
在配置合租VPS的时候, 我们通常把每个用户的文件限制在/home/$USERNAME/目录下面, 这个目录下面的文件都拥有各自的用户和组, 如果这个时候我们的Apache2使用www-data用户来运行, 那么对于类似php的file_put_contents函数创建的文件, 它们的属主是www-data, 这样一来使用ftp来管理的时候是无法操作的.

大概是我语文表达不好.. 使用中文搜索引擎一直找不到答案, 在google搜索找到了一个提示: Apache的MPM-ITK模块.

由于我的Apache2是在Ubuntu环境下apt-get默认安装的, 在/etc/apache2/mods-enabled/目录下面看到的默认启用的是mpm_prefork模块.

我们把 mpm_prefork.confmpm_prefork.load的软链接删除, 对应换成mpm_itk

1
2
3
4
cd /etc/apache2/mods-enabled/
rm mpm_prefork.conf mpm_prefork.load
ln -s ../mods-available/mpm_itk.conf mpm_itk.conf
ln -s ../mods-available/mpm_prefork.load mpm_prefork.load

然后我们需要修改一下每个用户的设置, 在VirtualHost标签闭合之前加上

1
AssignUserId {user} {group}

最后重启一下apache服务器就可以生效了

1
service apache2 restart