서버 설정 · 2 min read · Jan 29, 2026

Debian Etch에서 Apache2 mpm-itk로 별도의 UID/GID로 Vhosts 실행하기

Debian Etch에서 Apache2 mpm-itk로 별도의 UID/GID로 Vhosts 실행하기

버전 1.0
저자: Falko Timme

이 문서에서는 Debian Etch 서버에 apache2-mpm-itk를 설치하고 구성하는 방법을 설명합니다. apache2-mpm-itk는 Apache 2 웹 서버를 위한 MPM(다중 처리 모듈)입니다. mpm-itk를 사용하면 각 vhost를 별도의 UID 및 GID로 실행할 수 있습니다. 즉, 하나의 vhost에 대한 스크립트 및 구성 파일은 더 이상 다른 모든 vhost에서 읽을 수 있어야 할 필요가 없습니다. mpm-itk는 전통적인 prefork MPM을 기반으로 하기 때문에 mod_php와 함께 작동하며, 이는 스레드가 아닌 방식입니다. 즉, 웹사이트의 PHP 스크립트를 별도의 사용자로 실행하기 위해 더 이상 suExec 또는 suPHP를 사용할 필요가 없습니다.

이 문서는 어떤 종류의 보증 없이 제공됩니다! 이것이 귀하에게 작동할 것이라는 보장을 하지 않습니다!

1 사전 참고

Debian Etch 서버에 mod_php가 설치된 Apache2가 작동하고 있다고 가정합니다.

속도 고려 사항에 대해서는 http://blog.stuartherbert.com/php/2008/04/19/using-mpm-itk-to-secure-a-shared-server/를 참조하십시오.

보안 고려 사항에 대해서는 http://mpm-itk.sesse.net/를 방문하십시오.

2 apache2-mpm-itk 설치하기

apache2-mpm-itk는 Debian Etch용 Debian 패키지로 제공되므로, 우리가 해야 할 일은 다음을 실행하는 것입니다.

apt-get install apache2-mpm-itk

3 apache2-mpm-itk 구성하기

apache2-mpm-itk는 vhost별로 구성되므로, 전역 옵션을 설정할 필요가 없으며, vhost에서 설정해야 할 지시문은 AssignUserId 하나뿐입니다. 이 지시문은 두 개의 매개변수, 사용자 이름과 vhost가 실행될 그룹을 사용합니다.

이 예제에서는 기본 Debian Apache vhost(구성은 /etc/apache2/sites-available/default에서 찾을 수 있음)와 문서 루트 /var/www를 사용할 것이며(다른 vhost가 있는 경우 상황에 맞게 조정하십시오), 이 vhost가 사용자 web1_admin 및 그룹 web1으로 실행되기를 원합니다.

사용자와 그룹이 이미 존재하지 않는 경우, 다음과 같이 생성할 수 있습니다:

groupadd web1
useradd -s /bin/false -d /home/web1_admin -m -g web1 web1_admin

그런 다음 vhost 구성 파일을 열고 다음 줄을 추가합니다:

| [...] AssignUserId web1_admin web1 [...] |

예를 들어:

vi /etc/apache2/sites-available/default

| NameVirtualHost * ServerAdmin webmaster@localhost DocumentRoot /var/www/ Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all # 이 지시문은 apache2의 기본 시작 페이지를 # /apache2-default/에 두지만 여전히 /가 올바른 위치로 가도록 합니다. RedirectMatch ^/$ /apache2-default/ ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all ErrorLog /var/log/apache2/error.log # 가능한 값: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On Alias /doc/ "/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 AssignUserId web1_admin web1 |

그 후 Apache를 재시작합니다:

/etc/init.d/apache2 restart    

그게 전부입니다!

4 링크

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.