pagodabox
https://pagodabox.com
#pagodaboxってなーに
PaaS環境。
herokuのPHP版
#ためしてみる
クイックスタートのリストがあるのでそれを試してみる。
あらかじめpagodaboxでユーザー登録を済ませておく。
(GitHubアカウントで登録しておくと将来的にいいらしい)
今回はwordpressを構築してみる。
https://pagodabox.com/cafe/pagoda/wordpress
Launchリンクをクリックするとサーバーが構築される。
しばし待てばwordpress環境が構築されてpagodaboxのMySitesに表示される
すでにwordpressの環境が出来上がっている。
設定項目を入力すればすぐに記事を書いて行く事が出来る。
adminページ
dbのRAM使用率が高くなっているが、起動後すぐは高くなるようだ。
簡単!
wordpress環境できた!簡単!
おしまい!!
#原理
将来的の生産性のためにも原理を書いておこうと思う。
Launchリンクをクリックしただけでwordpress環境が構築出来てしまった。
その秘密はBoxfile
にある。プロジェクトのルートディレクトリ直下に設定したBoxfile
と呼ばれるyaml形式の設定ファイルがあれば画面ポチポチで出来上がる。
実際にデプロイしたプロジェクトファイルを持って来てBoxfile
を覗いてみよう。
pagodaboxではgitのリポジトリをホスティングしているので、
gitのリポジトリをcloneしてくればソースファイルを閲覧する事が出来る。変更が発生すればコミット、プッシュの手順を踏めばデプロイは完了する。
herokuみたいな感じで。
あらかじめユーザーの管理画面でsshキーの登録を行っておく。webページから設定出来る。
git clone
デプロイしたwordpressのファイル群を取得する。
リポジトリのURLが表示されるのでコピーする
んでclone
$ git clone git@git.pagodabox.com:timid-tesha.git
Cloning into 'timid-tesha'...
remote: Counting objects: 3523, done.
remote: Compressing objects: 100% (1859/1859), done.
remote: Total 3523 (delta 1594), reused 3523 (delta 1594)
Receiving objects: 100% (3523/3523), 10.94 MiB | 843.00 KiB/s, done.
Resolving deltas: 100% (1594/1594), done.
Checking connectivity... done
$ cd timid-tesha/
$ vim Boxfile
実際に使われたBoxfile
が以下
web1:
name: wp-web
shared_writable_dirs:
- wp-content/uploads/
after_build:
- "mv pagoda/wp-config.php wp-config.php"
- "rm -R pagoda"
db1:
name: wp-db
web1``db1
の設定でwebサーバー1台、DBサーバー1台が構築される設定になっている。
web1
に紐づいたshared_writable_dirs
が「デプロイ毎に共有するディレクトリ」の設定項目。今回の設定のように記述しておけばwordpressのプラグインやテーマ設定がgitのリポジトリに含まれていなくても、共有される。
web1
に紐づいたafter_build
は「デプロイ後の設定」項目。デプロイが終わった後にconfファイルをいい感じに設定するために記述する所。
mv pagoda/wp-config.php wp-config.php
するように記述されているのでpagoda/wp-config.php
を覗いてみる。
特徴的な所は以下だろうか。
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', $_SERVER["DB1_NAME"]);
/** MySQL database username */
define('DB_USER', $_SERVER["DB1_USER"]);
/** MySQL database password */
define('DB_PASSWORD', $_SERVER["DB1_PASS"]);
/** MySQL hostname */
define('DB_HOST', $_SERVER["DB1_HOST"]);
DB_NAME
等を$_SERVER["DB1_NAME"]
で取得している。
これはpagodaboxの標準機能でBoxfile
で設定して作成されたdb1
の情報が環境変数として出力されているので、その値を読み取ってデータベースアクセスを行うという設定。
パスワード等をいちいち設定しなくても済むようになるので大変便利
それとBoxfile
の記述を見て解るように、wp-config.php
の設定を変える時にはpagoda/wp-config.php
の設定を変えないと意味が無い。
Boxfile
の詳しい設定方法は公式ページに載っている
http://help.pagodabox.com/customer/portal/articles/175475
#wordpress日本語化
すでにwordpress環境は出来上がっている。
が、日本語で操作したいので勉強がてら変更を行う。
ここ参考
http://lealog.hateblo.jp/entry/2012/03/11/140346
confファイルの変更と言語ファイルを追加すれば良い
$ vim pagoda/wp-config.php
// define('WPLANG', '');
define('WPLANG', 'ja');
$ mkdir wp-content/languages
$ cd wp-content/languages
$ wget http://svn.automattic.com/wordpress-i18n/ja/tags/3.3.1/messages/continents-cities-ja.mo
$ wget http://svn.automattic.com/wordpress-i18n/ja/tags/3.3.1/messages/continents-cities-ja.po
$ wget http://svn.automattic.com/wordpress-i18n/ja/tags/3.3.1/messages/ja.mo
$ wget http://svn.automattic.com/wordpress-i18n/ja/tags/3.3.1/messages/ja.po
$ wget http://svn.automattic.com/wordpress-i18n/ja/tags/3.3.1/messages/ms-ja.mo
$ wget http://svn.automattic.com/wordpress-i18n/ja/tags/3.3.1/messages/ms-ja.po
$ cd ../../
$ git add -A
$ git commit -m '日本語化'
変更点をデプロイしてみます
$ git push origin master
Counting objects: 16, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (11/11), done.
Writing objects: 100% (12/12), 301.51 KiB | 0 bytes/s, done.
Total 12 (delta 4), reused 0 (delta 0)
:: Deploying to 6b3dabf on master
- 131024 3:29:31 InnoDB: The InnoDB memory heap is disabled
- 131024 3:29:31 InnoDB: Mutexes and rw_locks use GCC atomic builtins
- 131024 3:29:31 InnoDB: Compressed tables use zlib 1.2.3.3
- 131024 3:29:31 InnoDB: Using Linux native AIO
- 131024 3:29:31 InnoDB: Initializing buffer pool, size = 10.0M
- 131024 3:29:31 InnoDB: Completed initialization of buffer pool
- 131024 3:29:31 InnoDB: highest supported file format is Barracuda.
- 131024 3:29:31 InnoDB: Waiting for the background threads to start
- 131024 3:29:32 InnoDB: 1.1.8 started; log sequence number 1595675
- 131024 3:29:32 [Warning] 'user' entry 'root@1.db1.timid-tesha.pagodabox.com' ignored in --skip-name-resolve mode.
- 131024 3:29:32 [Warning] 'user' entry '@1.db1.timid-tesha.pagodabox.com' ignored in --skip-name-resolve mode.
- 131024 3:29:32 [Warning] 'proxies_priv' entry '@ root@1.db1.timid-tesha.pagodabox.com' ignored in --skip-name-resolve mode.
- 131024 3:29:32 [Note] Event Scheduler: Loaded 0 events
- 131024 3:29:32 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
- Version: '5.5.15-log' socket: '/var/run/mysqld.sock' port: 3306 Source distribution
- [24-Oct-2013 03:29:41] NOTICE: fpm is running, pid 96
- [24-Oct-2013 03:29:41] NOTICE: ready to handle connections
:: Parsing Boxfile
_______________________
BUILDING INFRASTRUCTURE
"""""""""""""""""""""""
+> Init submodules
:: Running After Build Hooks
[ EXECUTING 2 HOOKS ]
:: HOOK 1 ::
:: mv pagoda/wp-config.php wp-config.php
---------------------------------------- OUTPUT:
------------------------------------------------
:: HOOK 2 ::
:: rm -R pagoda
---------------------------------------- OUTPUT:
------------------------------------------------
HOOKS COMPLETE - 2 Hooks Executed
______________________
BOOTING INFRASTRUCTURE
""""""""""""""""""""""
+ Booting Instances for web1
web1.1
- [24-Oct-2013 03:30:37] NOTICE: fpm is running, pid 101
- [24-Oct-2013 03:30:37] NOTICE: ready to handle connections
_________________________
INFRASTRUCTURE GOING LIVE
"""""""""""""""""""""""""
+ Rerouting Traffic to new Infrastructure
<< traffic successfully ROUTED
+ Decommisioning Previous Infrastructure
To git@git.pagodabox.com:timid-tesha.git
7164f1e..6b3dabf master -> master
再度LiveSiteのリンクからwebページにアクセスしてみると日本語に変わってます。
タイムゾーンの設定やらプラグインの設定やらしておきましょう
#ドメインの設定
アクセスURLがhttp://timid-tesha.gopagoda.com
と少し解りにくいので独自ドメインの設定をしてみたいと思います。
urlを設定したら以下の表示が出るので、Aレコードの設定をしてあげましょう
webページ上部のトルネードしてるのが終わればpagodabox側の準備は完了です。
wordpressの管理画面でURLの指定があるので、そこも独自ドメインで設定したものに変えましょう。
#まとめ
けっこう簡単
今回はwordpressでしたがlaravelやcodeigniterとかのクイックスタートもあります。
クイックスタート以外でももちろん出来るし、githubでホスティングしているリポジトリをデプロイすればwebページでデプロイも出来るのでなかなか良いです。
コマンドラインツールもあるけど大抵の事はwebで出来るようになっています。デプロイの巻き戻しとかもwebで出来ます。
「画面ポチポチしかしたくない」って人にも進めやすいと思います。でも日本語の情報少ないです。