cloud9環境でMovableTypeサイト制作① -導入-

MovableTypeを手っ取り早く体験するために、cloud9を利用しようという試みです。
※勉強しながらの執筆のため、多々至らない点があるかと思いますのでご了承ください。

1. MovableTypeの利用申請
-----
今回は個人的に使用するので、個人無償版をダウンロードします。
まず、下記URLにアクセスして申し込みをしてください。
https://www.sixapart.jp/inquiry/movabletype/personal_download.html

<img src=https://qiita-image-store.s3.amazonaws.com/0/91976/b40391c9-e39c-2a17-edeb-d338990869b8.png width=400>

するとメールが届き、メール本文にMovableTypeのダウンロードURLが記載されています。

2. cloud9でMovableType用のworkspaceを作成
-----
まず、cloud9のページにアクセスし、自身のアカウントでログインする。次に「Create a new workspace」をクリックします。

<img src=https://qiita-image-store.s3.amazonaws.com/0/91976/2a9538cf-c3ca-9e64-1ddf-25048e83fb47.png width=400>

作成画面では、下記の例のように好みのWorkspace名を記載します。「Public」を選択するとインターネット上に公開されてしまいますので、公開せずに使用したい場合は「Private」を選択します。（ただし、「Private」は無料使用の場合は1アカウントにつき1つまでしか作成できません）また、MovableTypeはCloud9では公式サポートされていないため、自分で環境を構築します。なので、templateでは「Blank」を選択しています。
全ての入力が完了したら、「Create workspace」ボタンをクリックします。

<img src=https://qiita-image-store.s3.amazonaws.com/0/91976/72c44769-fb9c-cd33-9ee4-03371edd8758.png width=400>

3. Mysqlの設定
-----
MovableTypeではMysqlを使用するので、下記のようにターミナルからコマンドを入力します。

<img src=https://qiita-image-store.s3.amazonaws.com/0/91976/5684af07-dde8-968f-0b45-a7292af21515.png width=400>

下記コマンドでMysqlを起動し、バージョンが表示されることを確認します。

```bash:cloud9
mysql-ctl start
mysql -u <youruser> -D mysql -e "SELECT version()"
```

次に、MovableType用の「ユーザ」「パスワード」「DB」を作成します。
ここではそれぞれ「mtuser」「mtpassword」「mt」として作成しています。
※あくまで例ですので、パスワードについてはより複雑なものを設定することをお勧めします

```bash:cloud9
mysql -u <youruser>
GRANT ALL PRIVILEGES ON *.* TO mtuser@localhost IDENTIFIED BY 'mtpassword' WITH GRANT OPTION;
\q
mysql -u mtuser -p
create database mt character set utf8;
show databases;
\q
```

show databasesの結果に「mt」が表示されていれば成功です。

4. MovableTypeのダウンロード
-----
下記コマンドでMovableTypeをダウンロードし、適切に配置していきます。

```bash:cloud9
cd /home/ubuntu/workspace/
wget ***.zip
unzip /home/ubuntu/workspace/MT-6.2.4.zip
mkdir -m 775 cgi-bin
mv MT-6.2.4 ./cgi-bin/
mv /home/ubuntu/workspace/cgi-bin/MT-6.2.4/ /home/ubuntu/workspace/cgi-bin/mt
mv /home/ubuntu/workspace/cgi-bin/mt/mt-static/ /home/ubuntu/workspace/
```

コマンドの入力が終了した段階で、「/home/ubuntu/workspace/cgi-bin/mt/」のようにMovableTypeが配置されていれば成功です。



5. cgiの使用設定
-----
MovableTypeの配置まで終了しましたが、このままでは「cgi-bin」配下のcgiを実行することができません。下記コマンドを入力し、cgiが使用可能となるようにしましょう。

```bash:cloud9
sudo a2enmod cgi
```

次に、apache2の設定ファイルを下記のように修正します。
設定ファイルは「/etc/apache2/conf-available/serve-cgi-bin.conf」に配置されています。

```bash:serve-cgi-bin.conf(修正前)
        <IfDefine ENABLE_USR_LIB_CGI_BIN>
                ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
                <Directory "/usr/lib/cgi-bin">
                        AllowOverride None
                        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                        Require all granted
                </Directory>
        </IfDefine>
```

```bash:serve-cgi-bin.conf(修正後)
        <IfDefine ENABLE_USR_LIB_CGI_BIN>
                ScriptAlias /cgi-bin/ /home/ubuntu/workspace/cgi-bin/
                <Directory "/home/ubuntu/workspace/cgi-bin">
                        AllowOverride None
                        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                        AddHandler cgi-script .cgi
                        Require all granted
                </Directory>
        </IfDefine>
```

そして下記コマンドで全cgiファイルに実行権を与えます。

```bash:cloud9
sudo find /home/ubuntu/workspace/cgi-bin/ -name "*.cgi" | xargs chmod +x
sudo a2enmod cgi
```

6. MovableTypeの設定ファイル修正
-----
必要かどうかは不明ですが、下記2ファイルについて修正しておくとエラーがでないという話がありましたので、ここで下記のように修正しておきます。

```perl:mt.cgi
use strict;
BEGIN { $ENV{'MT_HOME'} = '/home/ubuntu/workspace/cgi-bin/mt/'; } 
use lib $ENV{MT_HOME} ? "$ENV{MT_HOME}/lib" : 'lib';
use MT::Bootstrap App => 'MT::App::CMS';
```

```perl:mt-upgrade.cgi
use strict;
BEGIN { $ENV{'MT_HOME'} = '/home/ubuntu/workspace/cgi-bin/mt/'; } 
use lib $ENV{MT_HOME} ? "$ENV{MT_HOME}/lib" : 'lib';
use MT::Bootstrap App => 'MT::App::Upgrader';
```

引用：[【MT】MT5.0ｘ　インストール時のエラー対処法](http://takenet.jp/takeblo/2011/01/mtmt50.html)

7. MovableTypeのインストール
-----
「Run」>「Run with」>「Apache httpd(PHP, HTML)」でapacheを起動します。

<img src=https://qiita-image-store.s3.amazonaws.com/0/91976/338826b7-5ded-43b6-34d0-a01f3140771f.png width=400>

起動が完了したら、下記URLにアクセスしてください。

https://movabletype-project-your-username.c9users.io/cgi-bin/mt.cgi

「MovableTypeにようこそ」と書かれた画面が表示されるので、スタティックウェブパスに「https://movabletype-project-your-username.c9users.io/mt-static/ 」と入力し、「開始」ボタンを押下します。

<img src=https://qiita-image-store.s3.amazonaws.com/0/91976/790962e6-f6bc-3033-b48b-e998044e7d80.png width=400>

ここでは「次へ」をクリックしてください。オプションのPerlモジュールを入れたい方は、各自で入れてみてください。

<img src=https://qiita-image-store.s3.amazonaws.com/0/91976/cb7627df-df85-e66c-5ebb-0bff94f52d60.png width=400>

データベースはMysqlを選択し、「データベース名」「ユーザー名」「パスワード」にそれぞれ「mt」「mtuser」「mtpassword」と入力してください。
※3節で独自の名前等を付けられた方は、そちらを入力してください。

<img src=https://qiita-image-store.s3.amazonaws.com/0/91976/9a922abf-2a01-5bde-ea56-48804a2d7fca.png width=400>

<img src=https://qiita-image-store.s3.amazonaws.com/0/91976/00f47134-16c8-683a-9be6-0f4550dde4b3.png width=400>

<img src=https://qiita-image-store.s3.amazonaws.com/0/91976/0c2eb6a1-7260-da2c-2597-e0c00fca255e.png width=400>

メールの設定ですが、デフォルトだと（多分）メールは飛ばないので、適当に設定しておいてください。ここでは、メールの設定については深く記載しません。

<img src=https://qiita-image-store.s3.amazonaws.com/0/91976/4df8ad57-65f3-3264-8cc7-76f560277431.png width=400>

ここまで特に問題なければMovableTypeの設定は無事終了（のはず）です。

<img src=https://qiita-image-store.s3.amazonaws.com/0/91976/db665d07-fa1e-424a-d5d1-4ea68fdce730.png width=400>

続いてアカウントの作成となります。MovableTypeの管理者アカウントなのでパスワードには複雑なものを設定しておくとよいです。
※WorkspaceをPublicで作成している人は特に

<img src=https://qiita-image-store.s3.amazonaws.com/0/91976/de4e07fa-99d7-bfdc-876c-1b9c183403c5.png width=400>

ウェブサイト名やテーマを変更したい人はここで各自変更してください。

<img src=https://qiita-image-store.s3.amazonaws.com/0/91976/49c7121b-35ad-3bdc-2ea6-ce44a053408a.png width=400>

ここでインストールは終了となります。

<img src=https://qiita-image-store.s3.amazonaws.com/0/91976/3f7afb81-a28a-9f57-4a50-e209aa22fd23.png width=400>

では設定したアカウントでログインしてみましょう。

<img src=https://qiita-image-store.s3.amazonaws.com/0/91976/54995372-9cfb-7a90-928b-04b516ccfabd.png width=400>

下図のような画面が表示されれば、ログイン成功となります。

<img src=https://qiita-image-store.s3.amazonaws.com/0/91976/ccd0496e-da2d-70d9-698f-394bdcce0183.png width=400>

8. おまけ
-----
下図のようなエラー画面が出た人はいますか？
<img src=https://qiita-image-store.s3.amazonaws.com/0/91976/688be0c2-6d4c-7bde-474e-09d17252acf3.png width=400>

「/etc/apache2/conf-available/serve-cgi-bin.conf」を編集した後「sudo a2enmod cgi」するのを忘れていませんか？設定変更が反映されていない可能性があります。

9. 参考
-----
MovableTypeを入れてみましたが、cloud9特有の面倒な設定が少しありましたね。。

初めてだったので、色々と参考にさせていただきました。
こんな記事読むより公式ページを見たほうが早い気もしますね。

参考：[Movable Type 6 ドキュメント](http://www.movabletype.jp/documentation/)