2023年の年間でアクセス数・ダウンロード数が多かった人気の写真素材をまとめまし...
こんにちは、Yuuです。12月26日は第89回ぱくたそ大忘年会でした。なぜ第89回なのかは大川さんが知っていると思われる。 そんな26日ですが、実は前日25日〜26日にかけて、サーバ移行を行っておりました。
1年位前にやったPSGI周りの設定をすっかり忘れていたのと、検索してもあまり情報ないので備忘録代わりにまとめておきます。## 構成と使用ツール - CentOS7 - nginx - git - cpanm - Supervisor
PSGI とは、Perl Web Server Gateway Interface の略で、Perl で書かれたウェブアプリケーションのサーバーレイヤーを抽象化する為の仕様です。Python の WSGI や Ruby の Rack に相当します。PSGI に対応したアプリケーションは、PSGI サーバーと呼ばれる PSGI に準拠したウェブアプリケーションサーバー上で動作します。 Movable Type では、Starman を PSGI サーバーとして利用する事を想定しています。もちろん、Starman 以外の PreFork 型の PSGI サーバーや、PSGI を利用せず、CGI として Apache などの Web サーバーで運用することも引き続きできます。 http://www.movabletype.jp/documentation/mt6/reference/psgi-plack-movable-type.html
と公式に書いてある。 公式に書いてあるので、そういうことなんだと思います。
Perlお馴染みパッケージ管理ツールをインストールします。
$ git clone git://github.com/miyagawa/cpanminus.git
$ cd cpanminus
$ perl Makefile.PL
$ make install
$ cpan App::cpanminus
Plackをインストールする際に、下記のモジュールがないと失敗するので、予め入れておきます。
$ yum install -y gcc expat-devel
$ cpanm Task::Plack
$ cpanm XMLRPC::Transport::HTTP::Plack
$ vi /var/www/html/movabletype/mt-config.cgi
PIDFilePath /var/www/html/movabletype/psgi/mt.pid
$ vi /var/www/html/movabletype/psgi/mt.run
#!/bin/sh
MT=/var/www/html/movabletype
PID=$MT/psgi/mt.pid
PSGI=$MT/mt.psgi
cd $MT
/usr/local/bin/starman -l 127.0.0.1:5000 --pid $PID $PSGI
Movable Typeをインストールしたフォルダに移動して、下記コマンドで確認する。
$ plackup mt.psgi
インストールが問題なければサーバが立ち上がるはず。 一旦起動が確認できたので、終了させて、confの設定に移ります。
動かすサーバが起動しただけなので、Mobable TypeのCGIファイル実行した際に、 サーバで実行させるようにしてあげます。
location ~ \.cgi$ {
proxy_pass http://127.0.0.1:5000;
}
これで拡張子がcgiのアプリケーションはPlackサーバで動作します。
このままだとセッション落とすと、Plackサーバも落ちてしまうので、Supervisorでタスク登録・継続実行させます。 http://supervisord.org/
yum にパッケージがあるようですが、pythonで入れてみる。
$ yum install -y python-setuptools
$ easy_install supervisor
$ vi /etc/init.d/supervisord
コードは下記にて。 https://gist.github.com/regret/da56a239cb581089c813
$ echo_supervisord_conf > /etc/supervisord.conf
$ echo "[include]" >> /etc/supervisord.conf
$ echo "files = supervisord/conf/*.conf" >> /etc/supervisord.conf
$ mkdir -p /etc/supervisord/conf/
$ vi /etc/supervisord/conf/service.conf
[program:mt]
user=root
command=/var/www/html/movabletype/psgi/mt.run
autostart=true
autorestart=true
stopsignal=QUIT
log_stdout=true
log_stderr=true
logfile=/var/www/html/movabletype/psgi/psgi.log
$ /etc/init.d/supervisord start
$ chkconfig supervisord on
もしくは
$ systemctl start supervisord.service
$ systemctl enable supervisord.service
とか。
問題なく起動していれば、Movable Typeの管理画面のシステム情報にて、下の画像のように表示されます。
http://www.cpi.ad.jp/archives/htmlmail/mc/154/index.html
この状態で全記事の再構築が、「28時間」→「5時間」になりました。 サーバのスペックって偉大・・。