在Ubuntu 9.10下,使用Apache2 mpm-itk在独立UID / GID下运行Vhost
版本1.0
作者:Falko Timme
本文介绍如何在Ubuntu 9.10服务器上安装和配置apache2-mpm-itk 。 apache2-mpm-itk是Apache 2 Web服务器的MPM(多处理模块)。 mpm-itk允许您在单独的UID和GID下运行每个vhost - 简而言之,一个vhost的脚本和配置文件不再需要对所有其他vhosts可读。 mpm-itk与mod_php一起使用,因为mpm-itk是基于传统的prefork MPM,这意味着它是非线程的。 这意味着您不必再使用suExec或suPHP作为单独的用户运行网站的PHP脚本。
本文档不附带任何形式的保证! 我不会保证这将为您工作!
1初步说明
我假设你的Ubuntu 9.10服务器上有一个使用mod_php的Apache2安装工具。
为了速度考虑,请查看http://blog.stuartherbert.com/php/2008/04/19/using-mpm-itk-to-secure-a-shared-server/ 。
出于安全考虑,请访问http://mpm-itk.sesse.net/ 。
我使用root权限运行本教程中的所有步骤,因此请确保以root用户身份登录:
sudo su
2安装apache2-mpm-itk
apache2-mpm-itk作为Ubuntu 9.10的.deb软件包可用,所以我们要做的就是运行
aptitude install apache2-mpm-itk
3配置apache2-mpm-itk
apache2-mpm-itk是以每个vhost为基础进行配置的,即我们不必设置任何全局选项,只需要在一个vhost中设置一个指令
,即AssignUserId
,它需要两个参数,即用户名以及虚拟机将运行的组。
在这个例子中,我将使用默认的Ubuntu Apache vhost(您可以在/ etc / apache2 / sites-available / default
中找到它的配置
)与文件根/ var / www
(如果您有不同的vhosts,请根据您的情况进行调整) ),我想要这个vhost作为用户web1_admin
和组web1运行
。
如果用户和组不存在,我们可以如下创建它们:
groupadd web1
useradd -s /bin/false -d /home/web1_admin -m -g web1 web1_admin
然后我们打开我们的vhost配置,并添加以下行:
[...] <IfModule mpm_itk_module> AssignUserId web1_admin web1 </IfModule> [...] |
例如:
vi /etc/apache2/sites-available/default
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> <IfModule mpm_itk_module> AssignUserId web1_admin web1 </IfModule> </VirtualHost> |
之后重新启动Apache:
/etc/init.d/apache2 restart
而已!
4链接
- apache2-mpm-itk: http : //mpm-itk.sesse.net/
- Apache: http : //httpd.apache.org/
- Ubuntu: http : //www.ubuntu.com/