Movable Type 奮闘記

私は3年前からWordPressによるサイト構築に挑戦しており、ブログサイトを開設しておりました。手探りでうまくいかないことだらけでしたが、なんとか形にすることができました。

コメントSpamが多いWordPress

実は昨年の4月頃より、WordPressからMovable Typeに移行させようとしていました。
それは、WordPressによるコメントSpamに辟易していたからです。

.htaccessファイルにコメントSpamを送ってきたIPアドレスを記載して、二度と訪れられないようにすればよかったのですが、どういうわけかMovable Typeで頭がいっぱいでした。

また会社の人事担当にも、「プロになりたかったら、WordPressだけでなく、Movable Typeも習得した方がいい」と言われたことがあったことから、挑戦に受けて立とうと思いました。

理想の開発環境を求めて

まず理想の開発環境を整えたいと思いました。と言うのも、レンタルサーバーに本番環境を1つだけ作って、そこでテンプレート設計を行ってしまいますと、運用中にテンプレートが壊れたときに、閲覧した人に壊れた状態を見せてしまうからです。

できればMacBookのローカルで環境を構築できるのが理想です。

XAMPP

Apache、MySQL、PHPの環境を手軽に構築できますので、WordPressの開発環境などで重宝しています。
そこへPerlの環境を入れようと、CPANなどを使ってはみたものの、まったくXAMPPの方へ反映されません。

おそらくXAMPPではなく、Mac側にインストールしているのではないかと推測します。

しかもMovable Typeに必要なデータベースはXAMPPで使われているMaria DBではだめらしく、XAMPP環境で開発環境を構築するのは諦めました。

HomeBrew

続いてMacの環境へUnix用のプログラムをコンパイルしてインストールできるHomeBrewを試してみました。
しかしこれもPerl環境でMySQLを利用するためのプログラムがうまくコンパイルされず、断念しました。

Linux

VMWare FusionにOracle Linuxを入れ、そこへCPANなどを使ってPerl環境を構築してみればどうだろうと思い、試してみました。

Linuxは私の中ではとてもハードルが高く、高価なワークステーションで使われるという印象がありました。しかし現在では金銭的なコストを負担せず、手軽に使えるようです。

赤いGUI画面を入れてみましたが、私のほしいPerlの環境が作れず、これも断念することになりました。

しかもポートフォワーディングがうまくいかず、Mac側からlocalhostへアクセスしても、Linuxで動いているApacheが表示されなかったり、Linux上のwwwフォルダへのファイルの運搬が煩雑だったりして、実用的ではありませんでした。

Vagrant + Virtual Box

Eラーニングの教材に、「Linux講座」がありましたので、視聴してみました。

その講義で用意していたのは「Virtual Box、Vagrant、CentOS」で、Virtual Box、CentOSをインストールし、yumコマンドでLAMP環境を構築していました。

あの…Vagrantどこで使うんですか?  ただの「おまもり」じゃないですよね?

Vagrantのことが気になって数日間悶々としていました。
しかたがないので、自分で書籍を購入し、独習することになりました。

Ubuntu

Vagrantでデフォルトで使われているBoxがUbuntuでしたので、UbuntuでLAMP環境を構築することにしました。
ところがネットに載っているブログなどではCentOSの記事がほとんどで、yumが使えないUbuntuではapt-getに置き換えて対応する作業が発生しました。

Apacheの起動コマンド「service」が使えない

さらにバージョンの違いで、ブログやeラーニングで教示されていた
service httpd start
chkconfig

などのコマンドが使えなくなっていました。代わりに
systemctl start httpd
を使う必要があり、戸惑いました。

仮想環境とのファイル共有ができない

ポートフォワーディングはうまくいきましたが、PCローカルの特定階層をLinuxの階層として使えるSynced Folderがうまくいきません。そのためFTPサーバーを起動させてFTPで運搬しましたが、とても煩雑です。

Chef

Vagrantで作るLinux環境の設定手順書を作成でき、ほかの仮想環境やコンピュータでも同じ環境が作れるという便利なツールのはずでした。

Chef soloが使えず文献が役に立たない!

しかし参考書やブログなどで取り扱われているChef soloはすでに廃止となり、Chef zeroに移行していて、何ができるかは参考になっても、記載の手順がまったく役に立ちません。

環境に依存しないはずなのに

Chefの設計思想としては、どの端末で何度構築コマンドを実行しても、均一な環境ができあがるという理想的なものでした。

しかしChef自体のバージョンが異なるとか、Rubyのバージョンが異なるなどが問題となり、違う端末でクックブックが使えません。これではChefの意味がありません。

レシピの組み方も特殊で、どこに何を書けば良いのかが理解できず、あきらめました。

CentOS

どうすればSynced Folderがつかえるようになるのだろうといろいろと模索している課程で、使用するBoxを切り替える方法を会得し、CentOSのボックスをダウンロードすることに成功したため、CentOSで作業することになりました。

LAMP環境を構築し、Synced Folderもうまくいきました。あと少しです。

ようやくローカルの開発環境を獲得! しかし…

最初からWordPressの環境が整うScotchBoxなるものを見つけました。
Six Apartさんもこういうのを用意してくれるといいのですが、残念ながら存在しません。

CentOSのyumコマンドやCPANでperl用のモジュールが次々とインストールできました。いままでの苦労がなんだったんだと言うくらいにうまくいきます。

そしてついにMovable Typeが動く環境が整いました。
ここまで来るのに6ヶ月ほどかかりました。長すぎる。

ローカル環境におけるMovableTypeの問題点

動作が遅い

MovableTypeでテンプレートや記事を作成したら、その都度サイトを再構築してHTMLを書き出すのですが、Macbookだとテンプレートの更新や再構築がとても遅く、開発に時間がかかってしまいます。
割り当てメモリのせいなのか。Macbookの処理スピードの遅さのせいなのか。

高価なライセンス料金

商用で使うには、仮想環境1つあたり¥98,000円必要です。
本番環境、テスト環境、ローカルのテスト環境と複数用意したら、30万円以上します。

オープンソースではないため、品質をSix Apartで維持しなければならないのでしかたがないのですが、コストのかけられない個人事業主などにはつらいです。

WordPressだとただなのに、あえてMovableTypeを導入するメリットを、顧客に丁寧に説明する必要が発生します。

Amazon Web Services

Amazon market placeにて、MovableTypeが使える環境を整えてくれるサービスがありましたので、検討しました。

nginxで低スペックの環境であれば、750時間/月無料で使えるので、試しに使ってみました。

※750時間は31.25日なので、もしグレゴリオ暦が改訂されて1ヶ月32日以上になったら有料になるのでしょうか。

なによりも驚いたのは、再構築の速さです。1分近くかかっていたのがたった15秒で終わってしまいます。開発がはかどります。

Amazon Marketplace版だとBasic認証が使えない!

テスト環境はBasic認証が必要なので、nginxの設定を行って実装する必要があります。nginxで同じような設定はできるので、問題ないはずでした。

しかし、いくらコンフィグファイルをいじっても無視されてしまいます。
結局Basic認証が実現できず、あきらめました。

Movable Type クラウド版

こちらは5,000円/月ですが、Basic認証が使えます。

テンプレートのカスタマイズも、画像などの静的ファイルもFTPアップして扱え、再構築してできたHTMLもFTPでダウンロードできるので、ここに落ち着きました。

FTPがSFTP(sshで代替されたFTP)ではなくFTPS(通信経路がSSLで暗号化されたFTP)なので、戸惑いもありました。

Basic認証の設定もコントロールパネルから使えて、必要な条件を満たしています。当面の開発環境はこれにします。

長かった道のりで得られたもの

最初からMTクラウドにすれば良かったんじゃないの? と思いますが、ここまでの険しい道のりは決して無駄ではありませんでした。

なぜなら、LAMP環境の構築や、Vagrantを経験することができたからです。
最初からMTクラウドにしてしまえば、Linuxを勉強する機会もなかったでしょう。

将来はRubyやRuby on Railsも勉強したいと思いますので、きっとこの経験が役に立つと思っています。

得られた知識

  • Vagrant
  • Linux(Ubuntu/CentOS)
  • Apache/nginx
  • Homebrew
  • vagrantfile記載で必要なRubyの知識
  • yum、apt-getなどによるモジュールのインストール
  • コンフィグファイル編集で使用したvi・vim
  • Amazon Web ServicesとMarket Place
  • CPANによるperlモジュールのインストール
  • Chefで何ができるか

コメント

送信フォーム

入力エリアすべてが必須項目です。

内容をご確認の上、送信してください。

※メールアドレスは公開されません