なるべくカンタンにMovable Type 5.2の新しい高速な管理画面を試す方法(Apache+mod_proxy+PSGI)
今回はすでにMTが動作している環境をベースに、なるべく簡単にPSGIを導入して新しい高速な管理画面を試そうと思います。
nginxとか真新しいことはありませんが、今までのことはそのまま不自由なく出来つつ、新しく良い物を取り入れる方向で進めていきます。
まだPSGIに切り替えたばかりですが、管理画面のレスポンスはPHPのようにサクサク動きます。 再構築も18秒→6秒になりました。少し準備が大変ですがとてもオススメです。
で始まる記述はLinuxコマンド、他のものは設定ファイルの内容です。
環境
- さくらVPS 2G
- ドキュメントルート(/home/studiowd/public_html)
- Movable Type 5.2(/home/studiowd/public_html/mt/以下)
- Apache2(port: 80)
環境構築
cpanmの準備
必要なPerlモジュールを追加します。
今回はcpanmを使用してインストールをします。
# curl -L http://cpanmin.us/ | perl - App::cpanminus
Plack/PSGI関連モジュールのインストール
Movable Typeが動作する環境に、下記のモジュールを追加でインストールしました。
- Plack
- CGI::PSGI
- CGI::Emulate::PSGI
- CGI::Compile
- SOAP::Transport::HTTP::Plack
- Starman
# cpanm (上記CPANモジュール名)
PSGIの起動ファイルを作成
# mkdir /home/studiowd/public_html/mt/psgi # vi /home/studiowd/public_html/mt/psgi/mt.run //mt.run #!/bin/sh ROOT=/home/studiowd MTDIR=$ROOT/public_html/mt PID=$MTDIR/psgi/mt.pid PSGI=./mt.psgi cd $MTDIR /usr/local/bin/starman -l 127.0.0.1:5000 --pid $PID $PSGI
SuperVisorのインストール
StarmanをSuperVisor経由で起動します。
# sudo yum install supervisor # sudo vi /etc/supervisord.conf [program:mt] user=studiowd command=/home/studiowd/public_html/mt/psgi/mt.run autostart=true autorestart=true stopsignal=QUIT log_stdout=true log_stderr=true logfile=/home/studiowd/public_html/mt/psgi/psgi.log # sudo service supervisord start
mt-config.cgiの設定
mt-configにpidの記述を追記します。 pidファイルの場所は、[PSGIの起動ファイルを作成]のものと合わせます。
# vi /home/studiowd/public_html/mt/mt-config.cgi //mt-config.cgi PIDFilePath /home/studiowd/public_html/mt/psgi/mt.pid
リバースプロキシの設定
今回はApacheへのアクセスのうちMTの管理画面へのアクセスのみ、Starmanで処理をします。そのため振り分けにmod_proxyを使用します。httpd.confの最下部に以下の記述を追加します。追加が終わりましたら、httpdを再起動します。
# vi /etc/httpd/conf/httpd.confProxyPass /mt/mt-static/ ! ProxyPass /mt/ http://localhost:5000/mt/ ProxyPassReverse /mt/ http://localhost:5000/mt/ # service httpd restart
MTにアクセスして、PSGIで動作しているかの確認をする
システム→ツール→システム情報のサーバモデルがPSGIになっていれば完了です。
参考サイト
読む順番は上から順がオススメです。
- さくらのVPS+Apache+PSGIサーバーでMT5.2のmt.psgiを動かす(環境構築編)[http://www.skyward-design.net/blog/archives/000140.html]
- MT5.2へのアップグレードとPSGIでの運用開始[http://www.skyward-design.net/blog/archives/000144.html]
- MovableType 5.2β で nginx + PSGIを試す(Starman+Supervisorでデーモン化[http://blog.takeyu-web.com/entry/2012/07/06/175950]
- Apache+mod_proxy+PSGIでMovable Type 5.2を動かす[http://www.h-fj.com/blog/archives/2012/08/22-110737.php]
- FastCGIと比べて約1.4倍のスピード! 開発中のmt.psgiを使ってみた[http://www.skyarc.co.jp/engineerblog/entry/mt_psgi.html]
- Ja dev bootstrap mt psgi ※PIDの設定が必要な理由[https://github.com/movabletype/Documentation/wiki/Ja-dev-bootstrap-mt-psgi]