Movable Type

NginxとStarmanで動かす

CentOS6の場合 nginxのリバースプロキシを使ってstamanを動かす

nginxの設定

starmanをport:5000で、mtフォルダはcgi-bin/mtに置いてあるとして。

# vi /etc/nginx/conf.d/mt.conf

upstream mt{
        server 127.0.0.1:5000;
}

server {
        listen 80;
        root /var/www/html;
        index index.html index.htm;

        server_name example.com;
        
        access_log /var/log/access.log;
        error_log /var/log/error.log;

        location / {
                try_files $uri $uri/ /index.html;
        }

        location /cgi-bin/mt/ {
                proxy_pass http://mt;
        }

        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /usr/share/nginx/www;
        }
}

Starmanのインストール

まずcpanmのインストール

$ sudo yum -y install perl-ExtUtils-MakeMaker
curl -L http://cpanmin.us | perl - --sudo App::cpanminus

starmanのインストール

$ sudo /usr/local/bin/cpanm Plack
$ sudo /usr/local/bin/cpanm --force cpanm Task::Plack
$ sudo /usr/local/bin/cpanm --force cpanm XMLRPC::Transport::HTTP::Plack

/usr/local/binにstarman入れたいのでsudoで。sudoだとcpanmのパスが見えないので絶対パスで。

フォルダの作成

$ sudo mkdir -p /var/www/tools
$ sudo mkdir -p /var/log/starman
$ sudo chown apache:apache /var/log/starman

起動スクリプトの作成

$ sudo vi /var/www/tools/mt.sh
 
cd /var/www/cgi-bin/mt
STAR=/usr/local/bin/starman
LOG=/var/log/starman/
PID=/var/www/tools/
$STAR --l :5000 --error-log $LOG/mt.log --pid $PID/mt.pid ./mt.psgi

で、保存。

したあとパーミッションとオーナーの変更

$ sudo chmod +x /var/www/tools/mt.sh
$ sudo chown -R apache:apache /var/www/tools

mt-config.cgiの修正

CGIPath http://example.com/cgi-bin/mt/ #絶対パスに変更
PidFilePath /var/www/tools/mt.pid #追加

試しに起動

$ sudo /var/www/tools/mt.sh

特にえらーでてなくmt動いてたらおっけー。
でもsudoで動かしてて危ないのですぐ消す。

supervisordで起動

MTをfastcgiで動かす

とりあえずmacの環境です。 でもlinuxも似たようなもん。

まずcpanのfastcgiをインストール

$ sudo -H cpan -fi FCGI
$ sudo -H cpan -fi CGI::Fast

mod_fastcgiはlibtoolが必要なので

$ sudo port install libtool
$ sudo cp /opt/local/bin/glibtool /opt/local/apache2/bin/libtool

FastGCIとmod_fastcgiのインストール

$ sudo port install fcgi
$ sudo port install mod_fastcgi

tmpディレクトリの作成

$ cd /private/tmp
$ sudo mkdir -p fcgi_ipc/dynamic
$ sudo chmod -R 707 fcgi_ipc

apacheの設定ファイルを編集

$ sudo emacs /opt/local/apache2/conf/httpd.conf
 
下記を追加
 
LoadModule fastcgi_module modules/mod_fastcgi.so
 
<IfModule mod_fastcgi.c>
FastCgiIpcDir /tmp/fcgi_ipc/
AddHandler fastcgi-script .cgi
FastCgiConfig -autoUpdate
FastCgiConfig -maxProcesses 5
</IfModule> 

apacheを再起動するとつかえるようになってます。

アップグレード

アップグレードするときにとりあえずMySQLのバックアップ

# cd /tmp
# mysqldump -a -u USER -p DATABASE | gzip > /tmp/MovableType-`date +"%Y-%m-%d-%H-%M-%S"`.dump.gz 
development_tool/mt.txt · 最終更新: 2013/08/09 05:00 by eiji