Apache設定 · 3 min read · Jan 02, 2026
Apache2 mpm-peruserを使用してDebian Etchで別々のUID/GIDでVhostsを実行する - ページ2
3 apache2-mpm-peruserの設定
この例では、デフォルトのDebian 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次に、メインのApache設定(/etc/apache2/apache2.conf)を開き、さまざまなMPM(prefork、workerなど)が設定されているセクションを検索し、次のようなものを追加します:
vi /etc/apache2/apache2.conf| [...] |
Processor行は重要です - これはApacheにどのユーザー/グループのペアがvhostを実行することを許可されているかを伝えます。ユーザーweb2_adminおよびグループweb2として実行したい2番目のvhostがある場合は、2番目のProcessor行を追加してください。オプションのディレクトリを追加することで、ユーザー/グループをchrootすることもできます:
| [...] Processor web1_admin web1 /var/www [...] |
vhostsも次のように修正する必要があります:
vi /etc/apache2/sites-available/default| [...] |
これは
| [...] ServerEnvironment web1_admin web1 /var/www [...] |
)。これは、この特定のvhostがどのユーザーおよびグループの下で実行されているかを定義します。
その後、Apacheを再起動します:
/etc/init.d/apache2 restart4 libapache2-mod-php5の再構築
次に、libapache2-mod-php5を再構築します。まず、いくつかの前提条件をインストールします:
apt-get install apache-dev bison chrpath firebird2-dev flex freetds-dev libbz2-dev libc-client-dev libcurl3-openssl-dev libfreetype6-dev libgcrypt11-dev libgd2-xpm-dev libjpeg62-dev libmcrypt-dev libmhash-dev libmysqlclient15-dev libncurses5-dev libpam0g-dev libpng12-dev libpspell-dev librecode-dev libsnmp9-dev libsqlite0-dev libt1-dev libtidy-dev libwrap0-dev libxmltok1-dev libxml2-dev libxslt1-dev re2c unixodbc-dev automake1.4 libtool shtool次に、PHP5のソースパッケージを取得します…
cd /usr/src
apt-get source php5… そしてソースディレクトリに移動します:
cd php5-5.2.0次に、PHP5にapache2-mpm-preforkまたはapache2-mpm-itkまたはapache2-mpm-peruserのいずれかを依存関係として受け入れるように指示する必要があります。debian/rulesを開きます:
vi debian/rulesファイルの終わりに次の行が見つかります:
| [...] echo "apache2:Depends=apache2-mpm-prefork (>> 2.0.52) | apache2-mpm-itk, apache2.2-common" >>debian/libapache2-mod-php5.substvars [...] |
これを次のように変更します:
| [...] echo "apache2:Depends=apache2-mpm-prefork (>> 2.0.52) | apache2-mpm-itk | apache2-mpm-peruser, apache2.2-common" >>debian/libapache2-mod-php5.substvars [...] |
次に、
dpkg-buildpackageを実行してPHP5パッケージを再構築します。
次に、現在の状況を確認しましょう:
cd /usr/src
ls -lserver1:/usr/src# ls -l
total 28940
-rw-r--r-- 1 root src 11392 2007-10-03 19:02 apache2-mpm-itk_2.2.3-01-2.diff.gz
-rw-r--r-- 1 root src 664 2007-10-03 19:02 apache2-mpm-itk_2.2.3-01-2.dsc
-rw-r--r-- 1 root src 29071 2006-10-31 00:04 apache2-mpm-itk_2.2.3-01.orig.tar.gz
drwxr-xr-x 5 root root 4096 2008-08-16 13:40 apache2-mpm-peruser-2.2.3-01
-rw-r--r-- 1 root src 353 2008-08-16 13:36 apache2-mpm-peruser_2.2.3-01-1.dsc
-rw-r--r-- 1 root src 710 2008-08-16 13:40 apache2-mpm-peruser_2.2.3-01-1_i386.changes
-rw-r--r-- 1 root src 165438 2008-08-16 13:40 apache2-mpm-peruser_2.2.3-01-1_i386.deb
-rw-r--r-- 1 root src 50282 2008-08-16 13:36 apache2-mpm-peruser_2.2.3-01-1.tar.gz
-rw-r--r-- 1 root root 6364431 2008-03-22 10:35 apache2.tar.gz
-rw-r--r-- 1 root src 2413278 2008-08-16 14:30 libapache2-mod-php5_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 2412784 2008-08-16 14:30 libapache-mod-php5_5.2.0-8+etch11_i386.deb
drwxr-xr-x 20 root root 4096 2008-08-16 14:29 php5-5.2.0
-rw-r--r-- 1 root src 1040 2008-08-16 14:30 php5_5.2.0-8+etch11_all.deb
-rw-r--r-- 1 root src 914599 2008-08-16 13:55 php5_5.2.0-8+etch11.diff.gz
-rw-r--r-- 1 root src 1741 2008-08-16 13:55 php5_5.2.0-8+etch11.dsc
-rw-r--r-- 1 root src 4768 2008-08-16 14:30 php5_5.2.0-8+etch11_i386.changes
-rw-r--r-- 1 root src 8583491 2006-11-07 13:34 php5_5.2.0.orig.tar.gz
-rw-r--r-- 1 root src 4757790 2008-08-16 14:30 php5-cgi_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 2397698 2008-08-16 14:30 php5-cli_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 215284 2008-08-16 14:30 php5-common_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 24478 2008-08-16 14:30 php5-curl_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 344780 2008-08-16 14:30 php5-dev_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 33426 2008-08-16 14:30 php5-gd_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 34508 2008-08-16 14:30 php5-imap_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 44362 2008-08-16 14:30 php5-interbase_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 17250 2008-08-16 14:30 php5-ldap_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 12844 2008-08-16 14:30 php5-mcrypt_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 5052 2008-08-16 14:30 php5-mhash_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 64620 2008-08-16 14:30 php5-mysql_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 34060 2008-08-16 14:30 php5-odbc_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 50482 2008-08-16 14:30 php5-pgsql_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 8632 2008-08-16 14:30 php5-pspell_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 4774 2008-08-16 14:30 php5-recode_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 11308 2008-08-16 14:30 php5-snmp_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 34160 2008-08-16 14:30 php5-sqlite_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 18414 2008-08-16 14:30 php5-sybase_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 16482 2008-08-16 14:30 php5-tidy_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 36458 2008-08-16 14:30 php5-xmlrpc_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 12258 2008-08-16 14:30 php5-xsl_5.2.0-8+etch11_i386.deb
-rw-r--r-- 1 root src 311360 2008-08-16 14:30 php-pear_5.2.0-8+etch11_all.deb
server1:/usr/src#新しいPHP5パッケージを次のようにインストールできます:
dpkg -i php5*.deb
dpkg -i libapache2-mod-php5_5.2.0-8+etch11_i386.deb今回は、apache2-mpm-preforkパッケージが欠落していることについて文句を言うことはありません。なぜなら、apach2-mpm-peruserがインストールされているため、新しいパッケージには十分だからです。
残っているのはPHP5モジュールを有効にし、Apacheを再起動することだけです:
a2enmod php5
/etc/init.d/apache2 restart今、ブラウザでphpinfo();ページを再度開いてみてください - apache2handlerのLoaded Modules行にpreforkの代わりにperuserが表示されるはずです:

5 リンク
- mpm-peruser: http://www.telana.com/peruser.php
- Apache: http://httpd.apache.org
- Debian: http://www.debian.org
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。