先日からPHPをCGIとして動かしていますが、せっかくなのでFastCGIの設定までやることにしました
FastCGIとは、CGIのプロセスをメモリ上に残しておくことで起動の遅いCGIプロセスを高速に実行出来るようにするCGIの動作仕様の1つです
FastCGI - Wikipedia
今回は解説サイトに従って簡単に設定出来ました
参考にしたのはこちら
Apache/FastCGI - Linux Tips
なんとなくfastcgiよりfcgidのほうが良さそうだったのでfcgidを入れました
必要なかった手順もあるので簡単にまとめておきます
Debian lennyの場合
BASH:
-
# aptitude install libapache2-mod-fcgid
-
# a2enmod fcgid
-
# vim /etc/apache2/sites-available/your-profile
-
-------------------------------------------------------------
-
PHPを使用するVirtualHostの設定ごとに以下を追記
-
<IfModule mod_fcgid.c>
-
AddHandler fcgid-script .php
-
<Directory "/path-to-your-php-script-dir">
-
FCGIWrapper /usr/bin/php-cgi .php
-
-
Options +ExecCGI
-
AllowOverride All
-
Order allow,deny
-
Allow from all
-
</Directory>
-
</IfModule>
-
-------------------------------------------------------------
-
# /etc/init.d/apache2 restart
ps ax | grep php-cgi
としてプロセスが存在すれば多分有効になっているんじゃなかろうか
#fcgid入れる前に試してないので良くわからない;
apache, php
何でこんなことになったのか…
ふとML115のApache2を見ると、それはpreforkだった
preforkはシングルスレッドで動作するモードだ
マルチスレッドの方がパフォーマンスいいんだからそっちを入れよう!
マルチスレッドに対応しているのはworkerなのだが、これにmod-phpが対応していないらしく、
workerを入れたらpreforkと一緒にmod-phpが消されてPHPが動かなくなった
かくして、仕方なくphp-cgiの設定をする羽目になったのである
ネットを彷徨っても断片的な設定しかなく、本当に辛かった
とりあえず自分が設定した内容をまとめておく
更新中は500エラーを返すなど、酷いことになっていたかと思います
申し訳ございませんでした
Debian lennyの場合
BASH:
-
# 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
疲れた
apache, php
てっきり
/Library/WebServer/Documents
だと思ったら全然違った;
そもそも設定ファイルが/etcになかった
macportsで入れたものは全て/opt以下に入るということを先輩に教えてもらっていたのに、すっかり忘れていた…
macportsだとデフォルトで
ServerRoot "/opt/local/apache2"
DocumentRoot "/opt/local/apache2/htdocs"
設定ファイルは/opt/local/apache2/conf以下に入ってます
というかLeopardなら最初からapache2入ってたし、そっち使えばよかったかな…
apache, mac
@IT:mod_deflateによるコンテンツの圧縮転送(1/3)
こちらを参考に夜な夜な設定してみました
まずはmod_deflateを有効にする
#CentOS5.3でyumから入れたらデフォルトで有効でした
そして<Directory>ディレクティブなんかで
# deflate enable
SetOutputFilter DEFLATE
# deflate level 1-9
DeflateCompressionLevel 5
の2行を最低書けば有効になります
チェックはAnalysis Tools for Your Siteから
上段のhttpzipにURLを入れるとチェックできます
圧縮はある程度CPUを消費するので、アクセスの非常に多いサイトで導入すると逆効果になる可能性もあるようです
#その場合はネットワーク負荷とのトレードオフ
apache
リダイレクトの設定が完了しました
新ドメインはhttp://yusukezzz.net/です
サブドメイン(blog.yusukezzz.netみたいなの)は設定するかどうしようか悩み中です(かなり面倒くさそう…)
今のところドメイン名部分が変わっただけなので表示に問題はないと思いますが、
手入力で直さなければならないところも多少あったと思うので、もしリンク切れがあったら連絡を頂けると助かります
今回のリダイレクトはyusukezzz.dyndns.orgのvirtualhost設定に以下のように書きました
TEXT:
-
Redirect permanent / http://yusukezzz.net/
後はyusukezzz.netのvirtualhost設定を用意(コピーして微修正)すれば完了です
apache