CentOS6にMovableTypeを導入してみました

踊る阿呆 Mitziです。インフラエンジニアやっています。

# はじめに
WordPressに較べ意外と面倒だったMovableTypeの導入方法を記載します。

# Index
01. MovableTypeの実装
02. MySQLデータベースの設定
03. Movable Type設定

## 評価版の入手
・今回はトライアル版をダウンロード

■Movable Type トライアルのお申し込み
https://www.sixapart.jp/inquiry/movabletype/trial.html

# 01. MovableTypeの実装

## 参考
Movable Type 6.0 ドキュメント
http://www.movabletype.jp/documentation/

## 必要な環境

### Movable Type 6 導入の場合
■Web Server
以下いずれか
・Apache HTTP Server 2.0 以上
・Microsoft Internet Information Server 7.5 以上
・nginx 1.2.0 以上（CGI もしくは PSGI 実行環境が別途必要となります）

■DB
MySQL 5.0以上

■perl
perl 5.8.1以上

■perlモジュール
CGI
Image::Size
File::Spec （バージョン0.8以上）
CGI::Cookie
LWP::UserAgent

■モジュール(DBモジュール)
DBI (バージョン1.21以上)
DBD::mysql

■文字コード
UTF-8


## 検証環境
■今回実装したのは以下環境になります。

```
AMI: suz-lab_centos-core-6.5.1
CentOSバージョン: CentOS release 6.5 (Final)
kernelバージョン: 2.6.32-431.23.3.el6.x86_64  [64bit版]
perl: perl-5.10.1-136.el6.x86_64
MySQLサーバー: mysql-server-5.5.41-27.el6.art.x86_64
Apache: httpd-2.2.15-39.el6.centos.x86_64
```

▽文字コードほかロケールも確認

```bash
[root@Mitzi-dev ~]# locale
LANG=ja_JP.utf8
LC_CTYPE=ja_JP.utf8
LC_NUMERIC="ja_JP.utf8"
LC_TIME="ja_JP.utf8"
LC_COLLATE="ja_JP.utf8"
LC_MONETARY="ja_JP.utf8"
LC_MESSAGES="ja_JP.utf8"
LC_PAPER="ja_JP.utf8"
LC_NAME="ja_JP.utf8"
LC_ADDRESS="ja_JP.utf8"
LC_TELEPHONE="ja_JP.utf8"
LC_MEASUREMENT="ja_JP.utf8"
LC_IDENTIFICATION="ja_JP.utf8"
LC_ALL=
```

## 事前準備
### ■perlの実行環境確認
・Movable Type では、/usr/bin/perl が初期値となっているとのこと

```bash
[root@Mitzi-dev ~]# whereis perl
perl: /usr/bin/perl /usr/share/man/man1/perl.1.gz
※Movable Typeの初期値と同じであることを確認
```

### ■モジュールの実装状況確認
・確認コマンド 

```bash
書式
# perl -Mモジュール名 -e ''　

# perl -MCGI -e ''
# perl -MImage::Size -e ''
# perl -MFile::Spec -e ''
# perl -MCGI::Cookie -e ''
# perl -MLWP::UserAgent -e ''
# perl -MDBI -e ''        
# perl -MDBD::mysql -e ''
※エラー出力がなればモジュールが導入されている
```

### ■perlモジュールを導入する必要がある場合、CPANとその他必要なモジュールを導入しておく

・流れは以下 (詳細は省略します)
01. CPANインストール
02. libyaml-develインストール
03. CPAN初期設定
04. CPANでYAMLインストール
05. CPAN Upgrade
※とても時間が掛かるので注意下さい。。


### ■インストール先の決定

| ディレクトリ | 内容 |
|:-----------|:------------|
|アプリケーション ディレクトリ | スクリプトやライブラリを保管するディレクトリ。webサーバ用にcgi-binディレクトリがあればソチラを推奨 |
|ウェブサイト ディレクトリ|webサーバのDocumentRoot|
|スタティックディレクトリ|Movable Type の管理画面で利用するスタイルシートや画像ファイル等を保管するディレクトリ。(デフォルトでは、mt-static)|

今回はapacheのデフォルトに合わせて配置してみました

| ディレクトリ | 内容 |
|:-----------|:------------|
|アプリケーション ディレクトリ | /var/www/cgi-bin/mt |
|ウェブサイト ディレクトリ|/var/www/html/mt/mt-static|
|スタティックディレクトリ|/var/www/html/mt|

## ■ MovableTypeの配置
・WinSCPなどを利用してzipファイルのまま ドキュメントルート(/var/www/html) 配下にアップロード

```bash
# cd /var/www/html
# unzip MT-6_0_6.zip
# \rm -f MT-6_0_6.zip
# mv /var/www/html/MT-6.0.6 /var/www/html/mt
```

### ■スタティックディレクトリ
・「mt-static」ディレクリ配下のファイルを 「スタティックディレクトリ」に格納する
※デフォルトでそのようになっているので対処なし

・公式マニュアルに従いスタティックディレクトリ配下の「support」ディレクトリの権限を777に変更、またapacheと同じグループ権限を付与

```bash
# chmod 775 /var/www/html/mt
# chmod 775 /var/www/html/mt/mt-static
# chmod 777 /var/www/html/mt/mt-static/support
# chown -R root.apache /var/www/html/mt
```

### ■アプリケーションディレクトリ
・mt-staticディレクトリ以外を移動

```bash
# mkdir /var/www/cgi-bin/mt
# cd /var/www/html/mt
# mv !(mt-static) /var/www/cgi-bin/mt
# chown -R root.apache /var/www/cgi-bin/mt
```

### ■パーミッション
・cgiファイルは 755 とする

```bash
# find /var/www/cgi-bin/mt -name '*.cgi*' -exec chmod 755 {} \;
# find /var/www/html/mt/mt-static -name '*.cgi*' -exec chmod 755 {} \;
```

・ちなみにapacheのデフォルト設定は以下のようになっています

```
# less /etc/httpd/conf/httpd.conf
----------
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
----------
```

### ■perl実行環境を合わせる
各スクリプトのperl実行環境が /usr/bin/perlと異なる場合、スクリプト側 もしくは シンボリックリンクで合わせる

```bash
例: スクリプト書き換え
#!/usr/local/bin/perl -w
```

## MovableType初期設定 01

### ■Movable Type システムチェック [mt-check.cgi]
・以下のようにシステムチェック用スクリプト 「mt-check.cgi」 を実行し確認
http://`[Public IP]`/cgi-bin/mt/mt-check.cgi
 or
http://`[ELB Public DNS]`/cgi-bin/mt/mt-check.cgi
 or
http://`[DomainName]`/cgi-bin/mt/mt-check.cgi

・チェック結果を確認
Movable Type動作に必要最低限の環境が整っていることを確認
![20150202_mt-check_キャプチャ.png](https://qiita-image-store.s3.amazonaws.com/0/50310/25664890-cd05-9a9e-b2d0-c59697e6c35d.png)

・必須モジュールがインストールされており、画面最後部に「Movable Typeを利用できます。」と出ていればOK。
![20150202_mt-check_キャプチャ2.png](https://qiita-image-store.s3.amazonaws.com/0/50310/a736c207-08cf-2eb1-d721-f66fe04d0d3a.png)


### ■モジュールをインストールする場合
※CPANが導入されていること前提

個別にインストール(下記例)

```bash
# capn
cpan[1]> install Plack
```

確認

```bash
# perl -MPlack -e ''
```

# 02. MySQLデータベースの設定

## 02-1. MySQLサーバの用意
RDS(MySQL)でもよいが、今回はローカルにMySQLサーバを構築しました。

### ■やったことの概要
・mysql-serverインストール
・文字コードをUTF-8に
・起動、自動起動もON
・MySQL初期設定
・MovableType用に ユーザ、DB作成
・接続確認 および データベースの文字コード確認(UTF-8)

## 02-2. DBアクセス情報の設定

### ■公式サイトより
環境変数リファレンス
http://www.movabletype.jp/documentation/appendices/config-directives/

### ■mt-config.cgiの設定

```bash 
# cp -p /var/www/cgi-bin/mt/mt-config.cgi-original /var/www/cgi-bin/mt/mt-config.cgi
# chmod 755 /var/www/cgi-bin/mt/mt-config.cgi
```

```bash 
# vi /var/www/cgi-bin/mt/mt-config.cgi
--------------------
# The CGIPath is the URL to your Movable Type directory
CGIPath    http://[DomainName他]/cgi-bin/mt/
StaticWebPath http://[DomainName他]/mt/mt-static/

##### MYSQL #####
ObjectDriver DBI::mysql
Database <DB名>
DBUser <ユーザ名>
DBPassword <password>
DBHost <hostname>
※RDS や 外部DBの場合、ホスト名を指定。標準はlocalhost

DBPort <port no>
※標準ポート3306以外を利用している場合追記

DBSocket /path/to/mysql.sock
※MySQL が Movable Type を動作させるウェブサーバーと同一のホストにあるものの、MySQL と Perl で使用する UNIX ソケットが違う場合は DBSocket の行を追記

## Change setting to language that you want to using.
#DefaultLanguage en_US　←コメントアウト
DefaultLanguage ja　←コメント解除
```

# 03. Movable Type設定

## 03-1. 管理者アカウントの設定

### 以下スクリプトにブラウザからアクセス
http://[DomainName]/cgi-bin/mt/mt.cgi

### アカウントの作成

![20150202_アカウントの作成_キャプチャ.png](https://qiita-image-store.s3.amazonaws.com/0/50310/27d0eb00-e014-2777-1a05-2ce5f6a1d02b.png)

------------------------------
ユーザ名: <管理者アカウント>
表示名:
電子メール:
システムのメールアドレスとして利用する: <チェック>

使用言語: 日本語
パスワード: <管理者パスワード>
パスワード確認: ※再入力 

------------------------------

[次へ]押下



### 最初のウェブサイトを作成

![20150202_アカウントの作成_キャプチャ2.png](https://qiita-image-store.s3.amazonaws.com/0/50310/53848c42-e7a3-bfbd-cccc-10ad4fa31b00.png)

------------------------------
ウェブサイト名: <任意> ※例: Movable Type導入テスト
ウェブサイトURL: http://[DomainName]/mt
ウェブサイトパス: /var/www/html/mt

テーマ: <リストから選択>
タイムゾーン: UTC+9(日本標準時間)

------------------------------
[インストール]押下
※URLが変わったら管理画面より本設定を変更し再構築を掛ける必要がありマス


### インストール完了

![20150202_アカウントの作成_キャプチャ3.png](https://qiita-image-store.s3.amazonaws.com/0/50310/2a315922-04af-f132-bcba-24444bdcb5df.png)


「インストールを完了しました！」の表示が出て、表示されるログにエラーが無ければOK

[Movable Typeにサインイン] 押下


## 03-2. システムからのお知らせへの対処
ダッシュボード上にエラーが出力されていた場合の対処

### ■イメージドライバーが設定されていません
![20150202_ダッシュボード_キャプチャ.png](https://qiita-image-store.s3.amazonaws.com/0/50310/716fb22d-1329-723d-80c2-09787e6d5be8.png)

Image::Magick、NetPBM、GD、Imagerのいずれかをインストールする必要があります。

・ImageMagick と Image::Magick両方をインストールする場合

```bash 
# yum install ImageMagick-perl
※ImageMagick も一緒にインストールされます
```

# おわり
![20150202_ダッシュボード_キャプチャ2.png](https://qiita-image-store.s3.amazonaws.com/0/50310/3f08a825-c9bc-dbd3-8892-813a95709d6a.png)

以上で最低限の設定が完了し、ブラウザよりMovableTypeを利用出来るようになりました。