社長BLOG
ホスティングに適したOpenPNEとは?
- 2011-12-12 (月)
- 社長BLOG
HOUOUプロジェクトを初めてから1.5ヶ月が経った。
スマートフォン対応も土日の合宿でだいぶまとまってきた。
そろそろ、ブロック気味になっている「シンプル、スピード、スマートフォン」以外の要望のインタビューもしていきたいところ。
第一弾として、手嶋屋のホスティングチームから、ホスティングに適したOpenPNEにするにはどんな改善をすればいいか?
と聞いてみた。結果を共有する。
キャッシュの自動削除
画像キャッシュ(web/cache以下)など永続的に保存されているWEBサーバのデータを自動で削除できるようにする。
日付またはサーバのディスク容量に応じてOpenPNE側で自動で削除。
symfonyのタスクで、定期的にガベージコレクションするような形が望ましい。
これによりWEBサーバのサイズ肥大化を防ぐことができる。とのこと。
CRONTABの一本化
現在複数に分かれているOpenPNEの定時実行(cron)を1つに集約する。
定期実行系は1つのフロントスクリプトに集約する。
フロントスクリプトは極めて頻繁に動作し、SNS内のDB設定などを読みながら、実際に実行すべきタスクを決められた時間に実行する。
イメージとしては「0/30 * * * * admin /some/sns/cron/action.php」でRSSの更新もディリーニュースも実行できるようにする。
CRONは設定トラブルが多い場所なので、アプリ側で一本化できると便利だとのこと。
タスクがエラーコードを返す
インストール・アップデート(タスク)実行時に適切なエラーコードを返すようにして欲しい。
symfonyコマンド等の終了ステータスを正常終了0、DBエラーなら1、ファイルパーミッションなら 2 のように意味付けをして適切に返信されるようにする。シェルスクリプトからOpenPNEをインストールするとき、エラー発生時にOpenPNE固有の問題かそうでないかを切り分けることができ、問題解決の手がかりを得やすくなる。
ログ出力の細分化
現在ログ出力は、DEBUGかそれ以外か?というようなざっくりした分け方であり、ホスティングを安定して行うための適切なログレベルを定めたいとのこと。
以下のようなレベルのエラーは、DEBUGとは独立してレベルを定めたいとのことだ。
・ファイルパーミッションのエラー(読み込み・書き込み・実行;失敗したファイル名・実行ユーザ名)
・DB接続エラー(DBサーバに接続できなかった、ユーザ認証の失敗など、なぜDBに接続できなかったかも含めて)
・メモリ不足(使用したメモリ容量も含め)
root権限が無くてもインストールできるように
メールによる日記投稿機能を利用するために、メールサーバの設定が必要になる。
メールのエイリアス設定が、rootに近い高レベルなアクセス権限を要求する。
もっと簡単にしたいそうだ。
OpenPNEはアプリなんだから、PHPアプリレベルのアクセス権限で全機能を提供できるようにした方がいい。
一般の利用でも、メールサーバの設定が一番大きなトラブルになる。