2013年2月 6日 20:12

MT5.2をPSGIで実験中

これは現在の自分から未来の自分への備忘録です。 一般的には、な〜んの役にも立たないと思います(笑)

MT5.2をPSGIで運用すると処理が爆速らしいので導入。

1.必要なモジュールをインストール cpanmをインストール

$ curl -L http://cpanmin.us/ | perl - App::cpanminus

モジュールをインストール
エラーが出る場合はオプション−fで強制的にインストール。

$ cpanm Plack
$ cpanm CGI::PSGI
$ cpanm CGI::Parse::PSGI
$ cpanm CGI::Emulate::PSGI
$ cpanm CGI::Compile
$ cpanm SOAP::Transport::HTTP::Plack

2.とりえあず動作確認

cdコマンドで「mt.cgiのあるフォルダ」に移動

$ plackup mt.psgi

3.リバースプロキシ設定

mt.cgiへのリクエストをPSGIサーバーへ振って処理させる必要があるのでリバースプロキシの設定。
※mt.cgiが/var/www/html/cgi-bin/mt/にある場合

$vi /etc/httpd/conf.d/vhosts.conf

<VirtualHost xxx.xxx.xxx.xxx:80>
  ServerName domain.com
  DocumentRoot "/var/www/html/"
  ProxyPass /cgi-bin/mt/ http://localhost:5000/cgi-bin/mt/
  ProxyPassReverse /cgi-bin/mt/ http://localhost:5000/cgi-bin/mt/
</VirtualHost>

4.Starmanでmt.psgi起動設定と常駐設定 起動スクリプトを作成

$ vi /path/script/starman-mt.sh

#!/bin/sh
MT=/var/www/html/cgi-bin/mt
PID=$MT/pids/mt.pid
PSGI=$MT/mt.psgi
cd $MT
/usr/local/bin/starman --pid $PID $PSGI

pidsディレクトリを作成

$ mkdir /var/www/html/cgi-bin/mt/pids

initデーモンとして登録

vi /etc/init.d/starman-mt 

#!/bin/sh
# chkconfig: 345 99 1
# description: starman-mt
# processname: starman-mt
start(){
 echo -n "starting starman-mt:"
 /path/script/starman-mt.sh
 return 0
}
stop(){
 killall starman-mt
 return 0
}
case $1 in
 start)
 start
 ;;
 stop)
 stop
 ;;
esac

chkconfigでスタートレベルを設定して起動

$ chkconfig --level 345 starman-mt on
$ /etc/rc.d/init.d/starman-mt start

MTにログインしてシステム→システム情報のサーバーモデルがPSGIになっていれば完了。

参考サイト(各サイトの管理者さまに感謝感謝)

http://www.skyward-design.net/blog/archives/000140.html
http://blog.takeyu-web.com/entry/2012/07/06/175950
http://smallworld.west-tokyo.com/blog/2012/08/amazon-ec2-nginx-psgi-mt.html