*Apache2をVirtualHost毎に別ユーザで動かす [#ae516f08]
#contents


**どうやるか? [#r7423d2b]
Apache2 では mpm((とりあえずの設定メモなので mpm の説明はここでは省略(^^;)) というものを選ぶことが出来る。
~
これが、デフォルトだと Apache1.3 の頃と同じ動作をする prefork が選択されるが、
mpm に perchild を選ぶことで httpd のスレッド化(パフォーマンスアップ)と、
その副産物(?)としてVirtualHost を別々のユーザによるプロセスとして動かせるようになる。


**Apache2 をスレッド対応でコンパイル [#y02e37ff]
mpm は Apache2 の根幹を成すものなので静的に組み込まないといけない。


***httpd を mpm=perchild で make する [#jc344eb5]
一番単純な make は以下の通り。
 ./configure --with-mpm=perchild
 make
 su
 make install


***php のスレッドセーフ対応 [#t7ccdc95]
いつも通りに make した PHP を使おうとすると、httpd の起動時に以下のようなエラーメッセージが表示されて起動に失敗する。

>[Thu Sep 11 18:17:47 2003] [crit] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP.~
>Pre-configuration failed

メッセージの意味は

>Apache がスレッド化されてるから PHP もスレッドセーフでコンパイルしろ!

ということ。
結局どうすればいいかというと、Apache2 をスレッド対応でコンパイルしたときに一緒に出来た apxs を使って PHP を再度コンパイルし直すだけでよいようだ。
あのメッセージを見ると PHP の ./configure オプションの話なのかと思いがちだが、違うので気をつけるべし。
((僕はこれで無駄に時間を食ってしまった…))


**VirtualHost を別ユーザで動かす為の設定 [#ve8784d3]
重要なディレクティブは
''[[AssignUserID>http://httpd.apache.org/docs-2.0/ja/mod/perchild.html#assignuserid]]''
と
''[[ChildPerUserID>http://httpd.apache.org/docs-2.0/ja/mod/perchild.html#childperuserid]]''
である。


***PHP が別ユーザで動くことを確認 [#ye24c91c]


***suEXEC(SuexecUserGroup)無しで CGI がユーザ権限で動くことを確認 [#kd36494d]


***WebDAV が別ユーザで動くことを確認 [#c6ea98ab]


*コメント [#vf64b659]
- Hello, nice site look this:<a href="http://chanel-handbags.da.cx">chanel handbags</a> <a href="http://bathroom.da.cx">bathroom vanities</a> <a href="http://skocz.pl/bivaet">coach handbags</a> <a href="http://www.queroumforum.com/designerhandbags">designer handbags</a> <a href="http://www.forumbutler.de/cgi-bin/forenserver/foren/F_1682/cutecast.pl">replica handbags</a>  http://bathroom.da.cx  http://chanel-handbags.da.cx http://skocz.pl/bivaet http://www.queroumforum.com/designerhandbags http://www.forumbutler.de/cgi-bin/forenserver/foren/F_1682/cutecast.pl -- [[Bush]] &new{2007-01-14 (日) 16:49:54};

#comment


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS