エンジニアブログ

エンジニアブログ

Oneライセンスと合わせて完全無料! a-blog cmsをdotCloudで動かしてみた

174436_100002191918053_3698151_n.jpg 井内 2012年06月05日

(2012/06/06 追記)
インストール後にconfig.server.phpのDEBUG_MODEを0にする必要があります。本作業を行うことでキャッシュ機能が有効になり、表示が高速化されます。手順はこちらに追記しました。山本さん、コメントありがとうございました!


Web制作者のためのCMSa-blog cmsを、PaaSdotCloudで動かしてみました。
若干動作が遅いですが、Oneライセンスと合わせると完全無料でa-blog cmsを使用することができます。

dotCloudにWordPressを設置する方法を見つけてPSGI対応中のMovable Typeでもやってみようと思ったのですが、ちょっと難航しております。気分転換にa-blog cmsの設置を試してみたら動いたので、手順をまとめてみました。

少々難しいですが手順通りやれば動作しますので、宜しければお試しください。不明点は本記事にコメント頂ければお答え致します。

目次

サービス/プロダクト説明

a-blog cmsとは

a-blog cmsとはPHP+MySQLで開発されたCMSです。PHPを書かなくてもHTMLとCSSだけでカスタマイズすることができ、Webデザイナー/HTMLコーダーなど非エンジニア向けのCMSとなっています。

開発元は名古屋にある有限会社アップルップルさんです。
基本的に有償ですが、無償のOneライセンスというのもあります。(個人かつ非商用用途に限る)

最近は全国各地で勉強会が開催されており、北海道でもうぇびんさん主催で実施されています。
(つい先月に4回目の勉強会が開催されたばかりです)


dotCloudとは

サンフランシスコにある会社が運営しているPaaSサービスです。
同様のサービスであるGoogle App EngineWindows Azureと異なり、プログラミング言語・データベースをかなり自由に選択することができます。
無料プランでも転送量やリクエスト数に制限が無いのも嬉しい特徴です。

動かし方

a-blog cmsの設定

a-blog cmsをダウンロードする

まずはa-blog cmsの本体をダウンロードしましょう。
下記ページからダウンロードできます。本記事ではバージョン1.5.1を使用しています。

下記手順でフォルダを作成して、ファイルをコピーしてください。

  1. 適当な場所にablogcms/というフォルダを作成する。
  2. ablogcms/ablogcms/というフォルダを作成する。
  3. ダウンロードしたablogcms1.5.1.zipを適当な場所に展開する。
  4. 上記ファイルを展開してできたablogcms1.5.1/ablogcms/の中身とablogcms1.5.1/install/の中身を、ablogcms/ablogcms/にコピーする。
  5. ablogcms/ablogcms/htaccess.txtを、ablogcms/ablogcms/.htaccessに変更する。


ionCubeローダーをダウンロードする

a-blog cmsはソースコードが暗号化されており、実行するためにはionCubeローダーをインストールする必要があります。

ionCubeローダーは下記ページからダウンロードできます。プラットフォームは「Linux (x86-64)」を選択してください。ファイル形式はzipでもtar.gzでも構いません。(違いが分からなければ、zipを選択してください)

下記手順でフォルダを作成して、ファイルをコピーしてください。

  1. ablogcms/ablogcms/ioncube/というフォルダを作成する。
  2. ダウンロードしたファイルを適当な場所に展開する。
  3. 上記ファイルを展開してできたioncube/ioncube_loader_lin_5.3.soを、ablogcms/ablogcms/ioncube/にコピーする。


設定ファイルを作成する

a-blog cmsをdotCloudで動作させるためには、設定ファイルが必要です。
下記3ファイルを作成して保存してください。


ablogcms/dotcloud.yml:
dotCloudで使うアプリケーションやサービスの設定です。

www:
  type: php
  approot: ablogcms
db:
  type: mysql


ablogcms/ablogcms/nginx.conf:
dotCloudではウェブサーバーにnginxを使用しているので、.htaccessの設定をnginx用に書き換える必要があります。
※参考ページ:nginxとphp-fmでa-blogcmsを動かす - CMS専門 Web開発者ブログ

location ~ (^|/)\. {
  return 403;
}
location / {
  index index.html index.htm index.php;
  if (-e $request_filename) { break; }
  rewrite (.*(^|/)[^\./]+)$ $1/ permanent;
  rewrite ((\.(html|htm|php|xml|txt|js|json|css|yaml|csv))|/)$ /index.php last;
}


ablogcms/ablogcms/php.ini:
ionCubeローダーの設定と、タイムゾーンの設定です。

date.timezone = "Asia/Tokyo"
zend_extension = /home/dotcloud/current/ioncube/ioncube_loader_lin_5.3.so

dotCloudの設定

DotCloudにサインアップする

dotCloudを使用するためにはサインアップをする必要があります。
下記ページからサインアップをして、アカウントを取得してください。

dotcloudコマンドをインストールする

dotCloudを操作するためには、dotcloudコマンドをインストールする必要があります。

公式マニュアルは下記にあります。

Mac & Linuxの場合、下記コマンドでインストールできます。

$ sudo easy_install pip && sudo pip install dotcloud


Lionは問題ありませんでしたが、CentOS 5.8ではPythonのバージョンが古かったので、新しいものをインストールする必要がありました。下記ページの解説が参考になると思います。

コマンドをインストールした後は、API Keyを登録してください。(私のMac環境では、dotcloudコマンドの実行にもsudoが必要でした)

$ dotcloud
Enter your api key (You can find it at http://www.dotcloud.com/account/settings):


API Keyは下記ページに出ています。(dotCloudにログインしてからご確認ください)

dotCloudにアプリケーションを作成する

下記コマンドで、a-blog cmsを動作させるアプリケーションの作成をします。

$ dotcloud create ablogcms
Created application "ablogcms"


ファイルアップロード、アプリケーションの起動を行う

下記コマンドでa-blog cmsのファイルアップロードと、アプリケーションの起動を行います。
コマンド実行前に、ablogcmsフォルダのある場所に移動しておいてください。

$ dotcloud push ablogcms ablogcms/
...
XX:XX:XX ---> Application fully deployed
Deployment finished. Your application is available at the following URLs
www: http://ablogcms-{dotCloudアカウント名}.dotcloud.com/


データベースの設定

a-blog cmsで使用するデータベースの設定を行います。

データベース設定は下記コマンドで確認できますので、「データベースのrootパスワード」と「データベースサーバーのポート番号」を控えておいてください。

$ dotcloud info abogcms.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@ablogcms-{dotCloudアカウント名}.dotcloud.com:{データベースサーバーのポート番号}
- name: mysql
url: mysql://root:{データベースのrootパスワード}@ablogcms-{dotCloudアカウント名}.dotcloud.com:{データベースサーバーのポート番号}
state: running
type: mysql


下記コマンドでMySQLにログインして「a-blog cms用のデータベース作成」「ユーザー作成」を行います。
パスワード入力を求められますので、「データベースのrootパスワード」を入力してください。

$ dotcloud run ablogcms.db -- mysql -u root -p
# mysql -u root -p
Enter password:


a-blog cms用のデータベースを作成します。

mysql> CREATE DATABASE ablogcms DEFAULT CHARSET=utf8;
Query OK, 1 row affected (0.00 sec)


データベースに接続するためのユーザーを作成します。
「XXXXXXXX」にはパスワードを設定してください。

mysql> GRANT ALL ON ablogcms.* TO 'ablogcms_user'@'%' IDENTIFIED BY 'XXXXXXXX';
Query OK, 0 rows affected (0.00 sec)

※参考ページ:dotcloud で nopaste なアプリケーションを動かしてみたよ - blog.nomadscafe.jp


普通のインストールでは設定ファイルを記述する必要はないのですが、今回は事前に設定しておきます。

ablogcms/ablogcms/config.server.php

#...
define('DOMAIN', 'ablogcms-{dotCloudアカウント名}.dotcloud.com');
define('DB_TYPE', 'mysql');
define('DB_HOST', 'ablogcms-{dotCloudアカウント名}.dotcloud.com:{データベースサーバーのポート番号}');
define('DB_NAME', 'ablogcms');
define('DB_USER', 'ablogcms_user');
define('DB_PASS', 'XXXXXXXX');  # GRANT ALL ~ で設定したパスワード
define('DB_PORT', {データベースサーバーのポート番号});
define('DB_CHARSET', 'UTF-8');
define('DB_PREFIX', 'acms_');
#...


データベース、設定ファイルの設定が終わりましたら、再度ファイルのアップロードとアプリケーションの再起動を行います。コマンド実行前に、ablogcmsフォルダのある場所に移動しておいてください。

$ dotcloud push ablogcms ablogcms/
...
XX:XX:XX ---> Application fully deployed
Deployment finished. Your application is available at the following URLs
www: http://ablogcms-{dotCloudアカウント名}.dotcloud.com/


a-blog cmsのインストール

a-blog cmsを動作させる準備ができたので、最後にa-blog cmsのインストールを行います。
ウェブブラウザで下記URLにアクセスすると、a-blog cmsのインストール画面が表示されます。

http://ablogcms-{dotCloudアカウント名}.dotcloud.com/


下記手順に従ってインストール作業を行ってください。

  1. 画面下の方にある「Step1 : 動作環境のチェックを実行する」ボタンを押す。
  2. 「Step2 : ドメインの設定 に進む」ボタンを押す。
  3. 「ドメイン名」テキストボックスを変更せずに「ドメインを設定する」ボタンを押す。
  4. 「Step3 : データベースの設定 に進む」ボタンを押す。
  5. 下記項目を入力して「データベースを設定する」ボタンを押す。
    • データベースサーバー名:「ablogcms-{dotCloudアカウント名}.dotcloud.com:{データベースサーバーのポート番号}」と入力してください。
    • データベース名:「ablogcms」と入力してください。
    • チェックボックス:変更しないでください。
    • データベースユーザー名:「ablogcms_user」と入力してください。
    • データベースパスワード:GRANT ALL ~ で設定したパスワードを入力してください。
    • テーブル先頭文字列:変更しないでください。
    • データベース文字コード:変更しないでください。
  6. 「Step4 : テーブルの作成 に進む」ボタンを押す。
  7. 「テーブルの作成を実行」ボタンを押す。
  8. 「Step5 : ブログの設定 に進む」ボタンを押す。
  9. 各項目を適切に設定して「ブログとユーザーを設定する」ボタンを押す。
  10. setupディレクトリ名を適当に変更して「移動」ボタンを押す。

これでa-blog cmsのインストール完了です。
「http://ablogcms-{dotCloudアカウント名}.dotcloud.com/」に再度アクセスすると、標準テーマのウェブサイトが表示されます。

動かしてみた感想

  • 動作が少し遅い。
    • ローカル環境に設置したa-blog cmsと比べると少し動作速度が遅かったです。海外サーバーに設置してあることも遅い原因の一つだと思います。レンタルサーバーやVPSに設置したことは無いので、それらに比べてどうなのかは不明です。
  • (2012/06/06 追記)インストール後にconfig.server.phpのDEBUG_MODEを0にする必要があります。本作業を行うことでキャッシュ機能が有効になり、表示が高速化されます。山本さん、コメントありがとうございました! 手順は下記の通りです。
    • コマンド「dotcloud ssh ablogcms.www」を入力して、サーバーにログインする。
    • 「/home/dotcloud/current/config.server.php」を開き、DEBUG_MODEを0に変更して保存する。
    • サーバーからログアウト後、コマンド「dotcloud restart ablogcms.www」を入力してアプリケーションを再起動する。
  • ローカルでサイト構築をしておいて、dotCloudは運用時のみ使うのが良い。
    • dotCloudへのファイルアップロードとアプリケーションサーバーの起動に、最低でも約1分かかります。サイト構築はローカル環境で行った後、運用する段階でdotCloudに移行するのが良いと思います。


実運用を考えると、データベースの設定はもう少しきっちりやるべきだと思います。
個人的には、PHPが使える他のPaaSでも試してみたいなーと思ってます。

。。。がその前にMovable Typeでしたね。もう暫くお待ちください。m(_ _)m