PHPをCGIモードで動かす
何でこんなことになったのか…
ふとML115のApache2を見ると、それはpreforkだった
preforkはシングルスレッドで動作するモードだ
マルチスレッドの方がパフォーマンスいいんだからそっちを入れよう!
マルチスレッドに対応しているのはworkerなのだが、これにmod-phpが対応していないらしく、
workerを入れたらpreforkと一緒にmod-phpが消されてPHPが動かなくなった
かくして、仕方なくphp-cgiの設定をする羽目になったのである
ネットを彷徨っても断片的な設定しかなく、本当に辛かった
とりあえず自分が設定した内容をまとめておく
更新中は500エラーを返すなど、酷いことになっていたかと思います
申し訳ございませんでした
Debian lennyの場合
# aptitude install php5-cgi apache2-mpm-worker # a2enmod cgid # a2enmod actions # vim /etc/apache2/conf.d/php-cgi.conf -------------------------------------------------------- 下記内容で保存 <IfModule modactions.c> Action application/x-httpd-php /cgi-bin/php5 </IfModule> -------------------------------------------------------- ここまでの作業は # gunzip /usr/share/doc/php5-cgi/README.Debian.gz # less /usr/share/doc/php5-cgi/README.Debian の内容を参照されたし # vim /etc/apache2/sites-available/your-profile -------------------------------------------------------- <VirtualHost *80> ~省略~ ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options ExecCGI -MultiViews +FollowSymLinks Order allow,deny Allow from all </Directory> </VirtualHost> -------------------------------------------------------- # /etc/init.d/apache2 restart
疲れた