dotcloud に concrete5 をインストールする
phper.jp に続いて dotcloud にも PHP アプリをインストールしてみます。
http://docs.dotcloud.com/static/tutorials/firststeps/ を参考にします。
dotcloud コマンドのインストール
dotcloud コマンドをインストールします。
$ sudo easy_install dotcloud
サービスの作成
アプリケーションのネームスペースを作成します。「kenji」としました。
$ dotcloud create kenji Warning: /home/kenji/.dotcloud.conf does not exist. Enter your api key (You can find it at http://www.dotcloud.com/account/settings): ************************************************************* Created "kenji"
api key を求められますので、表示された URI にアクセスしコピペします。
PHP サービスをディプロイします。サービス名は「concrete5」とします。
$ dotcloud deploy -t php kenji.concrete5 Created "kenji.concrete5".
これで URI は http://concrete5.kenji.dotcloud.com/ となります。
データベースサービスを作成します。
$ dotcloud deploy -t mysql kenji.mysql error: Timeout. Please try again.
タイムアウトしてしまいました。もう一度やってみます。
$ dotcloud deploy -t mysql kenji.mysql error: Service 'kenji.mysql' already exists
作成されているようです。
$ dotcloud info kenji.mysql cluster: wolverine config: mysql_password: ******** name: kenji.mysql namespace: kenji ports: - name: ssh url: ssh://dotcloud@mysql.kenji.dotcloud.com:**** - name: mysql url: mysql://root:********@mysql.kenji.dotcloud.com:**** state: running type: mysql
データベースにログインして concrete5 用のデータベースを作成します。
$ dotcloud run kenji.mysql -- mysql -u root -p
mysql> CREATE DATABASE concrete5 DEFAULT CHARACTER SET utf8; mysql> GRANT ALL PRIVILEGES ON concrete5.* TO concrete5@'%' IDENTIFIED BY '********'; mysql> FLUSH PRIVILEGES;
concrete5 ソースコードの転送
$ unzip concrete5.4.1.1.1.ja.zip $ cd concrete5.4.1.1.1.ja
まず、concrete5 がうまく動作するように Nginx の設定を変更します。
「fastcgi.conf」を作成し、以下を記載します。
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $path_info;
「nginx.conf」を作成し、以下を記載します。
fastcgi_index index.php; if ($uri ~ "^(.+?\.php?)(/.*)$") { set $path_info $2; } if (!-e $request_filename) { rewrite ^(.+)$ /index.php last; }
ソースコードをサーバに送信します。最後のドットを忘れないでください。カレントディレクトリの中身をサーバへ転送するという意味です。
$ dotcloud push kenji.concrete5 .
ブラウザで http://concrete5.kenji.dotcloud.com/ にアクセスします。
お馴染みのインストールページが表示されました。
MySQL のサーバーアドレスは先ほど表示されたポート番号を付けて指定します。例えば、「mysql.kenji.dotcloud.com:3306」のようになります。
これで、concrete5 はインストールできましたが、このままで次回 dotcloud push すると、サーバ上で作成されたファイルがすべて削除されてしまいます。site.php も削除されてしまいますので、インストールページが表示されてしまい、アップロードされたファイルもすべてなくなります。
そこで、サーバ上のファイルをローカルに同期しておきます。
$ rsync -e "ssh -p ****" -avzu dotcloud@concrete5.kenji.dotcloud.com:current/ .
次回、push する直前にこの処理をする必要があります。
あるいは、最初の転送の前に、WordPress の解説(英語) にあるように postinstall ファイルを作成し、作成されるファイルを保存するようにする必要があります。
その他のコマンド
以下のコマンドで、Nginx のログを監視できます。
$ dotcloud logs kenji.concrete5
作成したサービスの一覧は、以下で表示できます。
$ dotcloud list
サーバに ssh でログインするには、以下のようにします。
$ dotcloud ssh kenji.mysql
データベースサービスを削除したい場合は、以下のようにします。
$ dotcloud destroy kenji.mysql Please confirm destruction [yn]: y