Ⅴ.Fedora18サーバー構築記録_MT5.2のセットアップ_本体インストール

MT5.2に必要なperlモジュールのインストールがひととおり完了したので、本体のインストールからDBのセットアップ、最後にstarmanとapacheを使用して、PSGIを利用するための設定記録を掲載してシリーズを終了します。

9.MovableType本体のインストール

(1)本体セットアップ
落とした最新の5.2.2のフォルダを丸ごと「mt」フォルダにftpアップロード
cgiを全て実行許可にし、mt Directoryを下記の通り追加してhttpdリスタート
<Directory "/***/mt/">
Options +ExecCGI
AddHandler cgi-script .cgi
AllowOverride AuthConfig FileInfo Indexes Limit Options
Order allow,deny
Allow from all
</Directory>
「/mt/」にアクセスし、環境チェックスクリプト実行
画像サムネイル表示に必要なImagerが無い様なのでインストール
***************
# cpanm Imager
・・・・・・・・
--> Working on Imager
Fetching http://www.cpan.org/authors/id/T/TO/TONYC/Imager-0.96.tar.gz ... OK
Configuring Imager-0.96 ... OK
Building and testing Imager-0.96 ... OK
Successfully installed Imager-0.96
1 distribution installed
***************

(2)DBの生成とユーザーの設定
utf8のDBを作る。
# mysql -u root
mysql> create database webkoza_mt character set utf8;
mysql> grant all on webkoza_mt.* to *@* identified by '***';

(3)設定開始
/mt/にアクセスし、「MovableTypeにログイン」から設定開始。
DB関連は(2)で設定した内容を入力。
途中メール送信テストを、webkoza.com内のsmtpサーバーから行う設定とした。
テストでは、外部への送信はできず。
LAN内部への送信は成功。
おそらくsmtpサーバーのリレー設定の問題。
ひとまず、
mt-config.cgi
が生成された。
これでダッシュボードにログインできるようになったので、サイト生成はひとまず中断。

(4)PSGIのセットアップ1

下記を参考にして、mt.psgiをstarmanで起動するためのスクリプトを作成
http://riatw.me/blog/mt52_apache_psgi.html
**/***/mtpsgi.sh**
#!/bin/sh
# mt.psgiをstarmanで起動するためのスクリプト
# Daemon化するまでのテスト用
# 2013/6/15
MTDIR=/***/mt
PID=$MTDIR/mt.pid
PSGI=./mt.psgi
cd $MTDIR
/usr/local/bin/starman -l 127.0.0.1:5000 --pid $PID $PSGI
***************

mt-config.cgiにPIDファイルのパスを指定
**/***/mt/mt-config.cgi**
PIDFilePath /***/mt/mt.pid
*****************

httpd.confの最後ににmod_proxyによりmtはstarmanに飛ばす設定追加
******httpd.conf******
<IfModule proxy_module>
ProxyPass /mt/mt-static/ !
ProxyPass /mt/ http://localhost:5000/mt/
ProxyPassReverse /mt/ http://localhost:5000/mt/
</IfModule>
*****************

mtpsgi.shを起動して、httpdを再起動し、mtダッシュボードにアクセスし、
徘徊してみると、2倍くらいレスポンスが速く感じられた。
約12秒→約6秒

(5)PSGIのセットアップ2:daemon化
systemdの仕組みでdaemon化するために下記サイトを参照に
.serviceファイルを作成
http://tec.toi-planning.net/mt-column/tips/mt-psgi-daemon/

**/usr/lib/systemd/system/webkoza_mt.service**
[Unit]
Description=Webkoza MT
After=syslog.target
After=network.target
After=mysqld.service


[Service]
User=movabletype
Group=movabletype

Restart=always
SyslogIdentifier=webkoza_mt

Environment=PLACK_ENV=deployment
Environment=MT_HOME=/***/mt
Environment=MT_CONFIG=${MT_HOME}/mt-config.cgi

ExecStart=/usr/local/bin/starman ${MT_HOME}/mt.psgi -p 5000
#ExecStart=/usr/bin/plackup -s Starlet ${MT_HOME}/mt.psgi -p 5000
ExecStartPost=/bin/sh -c "echo ${MAINPID} > `perl -ne 'next if /^#/; print $1 if /^\s*PIDF
ilePath\s+(.*)/i' ${MT_CONFIG}`"
ExecReload=/bin/kill -HUP $MAINPID


[Install]
WantedBy=multi-user.target
*************************

下記を実行
# systemctl enable webkoza_mt.service
ln -s '/usr/lib/systemd/system/webkoza_mt.service' '/etc/systemd/system/multi-user.target.wants/webkoza_mt.service'

これでPC再起動すると無事アクセスできるはずが、mtのみアクセスできない。
/var/log/messges
を確認すると、
***************
Failed at step USER spawning /usr/local/bin/starman: No such process
***************
ServiceセクションのUserの指定が違うのかもしれないと思い、
UserとGroupの行をコメントアウトして再起動すると、無事アクセスできた。
デフォルトのUserで起動したということか。。
確実な原因については、下記を参照してもよくわからない。
https://wiki.archlinux.org/index.php/Systemd_(日本語)
おそらくsystemdの仕様書をじっくり読まないとわからないだろう。