我已经在ubuntu 12.04下安装了apache2。
第一的
我读过关于 mpm worker 和 prefork 的区别。在我的例子中,区别在于 worker。在我的 apache2.conf 中,我有:
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
grep -ef | grep apache2 给出:
root 1189 1 0 13:14 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 1192 1189 0 13:14 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 1194 1189 0 13:14 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 1195 1189 0 13:14 ? 00:00:00 /usr/sbin/apache2 -k start
我不明白为什么有 4 个进程,为什么 1 个由 root 拥有,而其他的由 www-data 拥有。
第二
我还读到,将 /var/www 设置为 www-data 作为所有者和组不是一个好主意。但我不明白为什么?
最好的办法是让 root 成为拥有全部权限的所有者,并让 www-data 组拥有 rx 权限。对吗?
答案1
Root 是最安全的
使用 root 将阻止任何恶意软件(人们说 Linux 不会感染病毒,但它可能会感染,而且安全是件好事)接管您的 Apache 服务器,因为 root 是一个具有极高权限的单独帐户。长话短说,只需将其保留在根目录即可。