こんばんは、家Tです。

最近の思惑について独り言のような報告です。

■その①
当サーバでのPHP動作モードですが、これまでは速度の問題、動作検証の問題などあったために、Apacheのモジュール版(mod_php)で動作させていたわけですが、数人のユーザより、Apacheで扱うファイル、ディレクトリパーミッションの自由度の観点から「PHPをユーザ権限で動かしたい」という声が以前よりありましたので、この度試験的ですがPHPのCGIモード版機能「Apache + PHP + FastCGI Wrapper(mod_fcgid)+ suEXEC」をリリースしようと思います。

実は以前より導入、動作検証を行っておりましたが、どうにか課題をクリアできそうなので。
動作検証では、suEXECを有効にした状態での動作と、FCGIWrapperを有効にした時のファイルアップロードなどの問題でハマってしまい時間がかかりました。
ううむ、まだまだ勉強不足。

特にPHPでsuEXECを使おうとすると、Wrapperスクリプトがユーザ毎に必要なようで、そのスクリプトとユーザ毎のphp.ini(編集不可)をユーザホームに置くことで解決しました。
もちろんPHPプログラム側では記述の変更は必要ありません。

ラッパープログラム経由でPHPを利用することで、やろうと思えばPHP4とPHP5を切り替えて使用できるようになりますが、個人的に古いプログラムは好きじゃないし、セキュリティの問題もあるのでこれまで通りPHP5のみでの提供とします。

このPHPの動作モード(Apacheモジュール or CGIモード)はそれぞれユーザ毎に設定を持てる仕組みにしましたので、既存のユーザでmod_phpから変更の必要がない方はもちろん無視していただいて構いませんし、CGIモードで使いたい方については新規登録申請時(様子を見た後)、あるいは既存ユーザの場合は管理人にご連絡をいただくことで変更可能です。
ただ、その際の既存ファイル、ディレクトリのパーミッションの確認はお願いします。
(基本的には変更しなくても大丈夫だとは思います)

一般論として標準的なApacheモジュール版は速度重視、CGIモード版はセキュリティ重視といった感じでしょうか。
ただ、今回リリースするCGIモード版もFastCGIでの動作だからなのか、遅くはない気がします。

また、CGI/Perlプログラムとして、MovableType5.04にてFastCGIで動作することも確認しました。

CGIモードで通常運用できるようになれば、セキュリティの観点から場合によってはApacheモジュール版PHPではセーフモードを有効にする可能性もあります。

■その②
現在、当メールサーバのスパムメール対策として「Spamassassin」を使用していますが、各ユーザ毎にスパムメールの扱いや、件名の編集(***SPAM***を追加など)ができる状態にしておりましたが、この状態ではSpamassassinプロセスがスタンドアローンとしてメール着信時にユーザ毎に都度起動するために、Perlで記述されたプログラム故のサーバの高負荷、メール着信時間の遅延(5~8秒程度)という意味で面白くない状況がありました。
特にサーバへの受信時に関しては、アンチウィルス処理→アンチスパム処理→メールボックス配信という流れになるので、1プロセスの負荷は低いほど良いわけです。

そこで、Spamassassinプロセスをデーモン(サーバ)として常に待機させ、SpamcというCで書かれた軽量クライアントプログラムと連携して動作させることで、かなりの負荷軽減、着信時間の短縮化を確認できました。
ただ、この場合の当サーバでの弊害として、ユーザ毎のスパムメールの件名編集や、スパムメールスコアでの制御等がユーザ毎に行えなくなります。(「スパムメールはサーバ側で即削除」といったユーザ設定は引き続き利用可能)
スパム対策としての機能はサーバ全体に共通機能として働くので、上記のような設定を行っていなければ特に問題はないかと思います。

以上、長文でしたが、その①に関しては、既存ユーザからの希望者(人柱er)を募ります。その後様子見、調整した上で本運用に移ろうと思います。

その②に関してはサーバスペック増強による回避もできそうですが、是非ご意見をいただきたいと思っています。

といっても、例のごとくこの投稿を見てる人はほとんどいないんだろうなぁ・・・。
定期利用確認メールの時みたいに全ユーザへメール配信するのは、どうもメルマガっぽくてうざいと思うのでこんな形にしてます。

ではでは。