PSGI対応中のMovable TypeをdotCloudで動かしてみた
ついに来ました! 秋出荷の次期バージョンで、Movable TypeがPSGI対応致します。
GitHubで開発バージョンを見つけて以来動作確認を進めておりまして、とりあえずですがPaaS dotCloudで動作させることができましたので、手順をまとめました。
※Oneライセンスと合わせて完全無料! a-blog cmsをdotCloudで動かしてみた - MTエンジニアブログ - スカイアークシステムと内容が重複する部分は省略しております。
目次
使い方
dotCloudの設定
dotCloudにサインアップする
こちらをご覧下さい。
dotcloudコマンドをインストールする
こちらをご覧下さい。
dotCloudにアプリケーションを作成する
下記コマンドで、Movable Typeを動作させるアプリケーションの作成をします。
アプリケーション名は4文字以上という制約があるため、mtosという名前にしました。
$ dotcloud create mtos
Created application "mtos"
Movable Typeの設定
PSGI対応中のMovable Typeをダウンロードする
6/3時点でmasterブランチにマージされてないようなので、developブランチを使いました。(マージ後はmasterブランチを使用してください)
下記ページからzipファイルをダウンロードしてください。
zipファイルダウンロード後、下記手順でディレクトリを作成してファイルをコピーしてください。
- 適当な場所にmtosというディレクトリを作成する。
- mtos/mtosというディレクトリを作成する。
- ダウンロードしたzipファイルを適当な場所に展開する。
- 上記ファイルを展開してできたディレクトリの中身を、mtos/mtos/にコピーする。
- mtos/mtos/mt.psgiを、mtos/mtos/app.psgiに変更する。
- mtos/mtos/static/ディレクトリを作成して、mtos/mtos/mt-static/をそこに移動する。(mtos/mtos/static/mt-static/という状態になります)
設定ファイルを作成する
mtos/dotcloud.yml:
dotCloudで使うアプリケーションやサービスの設定です。
requirements:の後には必要そうなモジュールを記述してあります。(精査してないです)
※Image::Magick, GDはインストールできなかったので、イメージドライバにはImagerを設定してます。
www: type: perl approot: mtos requirements: - Plack - CGI::PSGI - CGI::Parse::PSGI - CGI::Compile - XMLRPC::Transport::HTTP::Plack - DBI - DBD::mysql - CGI - Image::Size - File::Spec - CGI::Cookie - HTML::Entities - LWP::UserAgent - SOAP::Lite - File::Temp - Imager - Storable - Crypt::DSA - MIME::Base64 - XML::Atom - Archive::Tar - Archive::Zip - IO::Compress::Gzip - IO::Uncompress::Gunzip - Text::Balanced db: type: mysql
ファイルアップロード、アプリケーションの起動を行う
下記コマンドでMovable Typeのファイルアップロードと、アプリケーションの起動を行います。
コマンド実行前に、mtosフォルダのある場所に移動しておいてください。
完了まで数分かかりますので、気長にお待ちください。
$ dotcloud push mtos mtos/
...
XX:XX:XX ---> Application fully deployed
Deployment finished. Your application is available at the following URLs
www: http://mtos-{dotCloudアカウント名}.dotcloud.com/
データベースの設定を行う
Movable Typeで使用するデータベースの設定を行います。
データベース設定は下記コマンドで確認できますので、「データベースのrootパスワード」と「データベースサーバーのポート番号」を控えておいてください。
$ dotcloud info mtos.db
config:
mysql_masterslave: true
mysql_password: {データベースのrootパスワード}
created_at: ????????.????
datacenter: Amazon-us-east-1d
image_version: ?????????? (latest)
instances:
ablogcms.db.0:
role: master
state: up
memory:??M/512M (?%)
ports:
- name: ssh
url: ssh://mysql@mtos-{dotCloudアカウント名}.dotcloud.com:{データベースサーバーのポート番号}
- name: mysql
url: mysql://root:{データベースのrootパスワード}@mtos-{dotCloudアカウント名}.dotcloud.com:{データベースサーバーのポート番号}
state: running
type: mysql
下記コマンドでMySQLにログインして「Movable Type用のデータベース作成」「ユーザー作成」を行います。
パスワード入力を求められますので、「データベースのrootパスワード」を入力してください。
$ dotcloud run mtos.db -- mysql -u root -p
# mysql -u root -p
Enter password:
Movable Type用のデータベースを作成します。
mysql> CREATE DATABASE mtos DEFAULT CHARSET=utf8;
Query OK, 1 row affected (0.00 sec)
データベースに接続するためのユーザーを作成します。
「XXXXXXXX」にはパスワードを設定してください。
mysql> GRANT ALL ON mtos.* TO 'mtos_user'@'%' IDENTIFIED BY 'XXXXXXXX';
Query OK, 0 rows affected (0.00 sec)
※参考ページ:dotcloud で nopaste なアプリケーションを動かしてみたよ - blog.nomadscafe.jp
dotCloud外のMovable Typeからインストールを行う
dotCloud上のMovable Typeからは何故かインストールができませんでした。
一度、ローカル環境や外部サーバー上のMovable Typeからインストールを行うことで、dotCloud上のMovable Typeを使用することができました。正しい手順ではありませんが、外部のMovable TypeからdotCloud上のデータベースにインストールを行ってください。
※最初に作成されるウェブサイトURL、ウェブサイトパスは適当に設定してください。存在しないパスを設定するとインストールができませんので、存在するパスを設定してください。
mt-config.cgiの設定をして、再アップロードと再起動を行う
dotCloud上のMovable Typeではインストールを行わないので、mtos/mtos/mt-config.cgiを作成します。
※Image::Magick, GDはインストールできなかったので、イメージドライバにはImagerを設定してます。
CGIPath / StaticWebPath /static/mt-static/ StaticFilePath /home/dotcloud/current/static/mt-static/ ObjectDriver DBI::mysql Database mtos DBUser mtos_user # GRANT ALL ~ で設定したパスワード DBPass XXXXXXXX DBHost mtos-{dotCloudアカウント名}.dotcloud.com DBPort {データベースサーバーのポート番号} DefaultLanguage ja ImageDriver Imager
mt-config.cgiの作成後に下記コマンドを実行して、ファイルの再アップロードとアプリケーションの再起動を行います。コマンド実行前に、mtosフォルダのある場所に移動しておいてください。
$ dotcloud push mtos mtos/
...
XX:XX:XX ---> Application fully deployed
Deployment finished. Your application is available at the following URLs
www: http://mtos-{dotCloudアカウント名}.dotcloud.com/
ウェブサイトの設定を変更する
ウェブブラウザから下記URLにアクセスすると、Movable Typeのログイン画面が表示されます。
http://mtos-{dotCloudアカウント名}.dotcloud.com/
Movable Typeにログインをして、最初に作成したウェブサイトのウェブサイトURL、ウェブサイトパスを下記のように変更してください。
- ウェブサイトURL:http://mtos-{dotCloudアカウント名}.dotcloud.com/
- ウェブサイトパス:/home/dotcloud/current/static/{ウェブサイト名}
これでMovable Typeの設定が完了しました。
再構築後、下記URLにアクセスすると最初に作成したウェブサイトが表示されます。
http://http://mtos-{dotCloudアカウント名}.dotcloud.com/static/{ウェブサイト名}
注意すること
- 実運用を考えると、データベースの設定はもう少しきっちりやるべきだと思います。
- mtos/mtos/nginx.confを作成して適切に設定すれば、「http://mtos-{dotCloudアカウント名}.dotcloud.com/」でウェブサイトを表示させることも可能だと思います。興味がある方は是非ともチャレンジしてみてください。