7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

pagodabox で wordpress 環境の構築

Last updated at Posted at 2013-10-24

pagodabox
https://pagodabox.com

#pagodaboxってなーに

PaaS環境。
herokuのPHP版

#ためしてみる

クイックスタートのリストがあるのでそれを試してみる。

https://pagodabox.com/cafe

あらかじめpagodaboxでユーザー登録を済ませておく。
(GitHubアカウントで登録しておくと将来的にいいらしい)

今回はwordpressを構築してみる。

https://pagodabox.com/cafe/pagoda/wordpress

wordpress

Launchリンクをクリックするとサーバーが構築される。

launch

しばし待てばwordpress環境が構築されてpagodaboxのMySitesに表示される

mysites

LiveSiteのリンククリックのページ
livesite

すでにwordpressの環境が出来上がっている。
設定項目を入力すればすぐに記事を書いて行く事が出来る。

adminページ
dbのRAM使用率が高くなっているが、起動後すぐは高くなるようだ。
admin

簡単!

wordpress環境できた!簡単!
おしまい!!

#原理

将来的の生産性のためにも原理を書いておこうと思う。

Launchリンクをクリックしただけでwordpress環境が構築出来てしまった。
その秘密はBoxfileにある。プロジェクトのルートディレクトリ直下に設定したBoxfileと呼ばれるyaml形式の設定ファイルがあれば画面ポチポチで出来上がる。

実際にデプロイしたプロジェクトファイルを持って来てBoxfileを覗いてみよう。

pagodaboxではgitのリポジトリをホスティングしているので、
gitのリポジトリをcloneしてくればソースファイルを閲覧する事が出来る。変更が発生すればコミット、プッシュの手順を踏めばデプロイは完了する。
herokuみたいな感じで。

あらかじめユーザーの管理画面でsshキーの登録を行っておく。webページから設定出来る。

git clone

デプロイしたwordpressのファイル群を取得する。

adminページに移動して
Show Git

Show git Clone URL
Hide Git

リポジトリの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を覗いてみる。

特徴的な所は以下だろうか。

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ページにアクセスしてみると日本語に変わってます。
ようこそ

そしてwordpressの初期設定をすれば完了です。
pagoda test

タイムゾーンの設定やらプラグインの設定やらしておきましょう

#ドメインの設定

アクセスURLがhttp://timid-tesha.gopagoda.comと少し解りにくいので独自ドメインの設定をしてみたいと思います。

adminページのDNS Aliasesの設定を行います
dns

urlを設定したら以下の表示が出るので、Aレコードの設定をしてあげましょう
pagoda.soramugi.net

webページ上部のトルネードしてるのが終わればpagodabox側の準備は完了です。
トルネード

しばし待てばアクセス出来るようになります。
pagoda.soramugi.net

wordpressの管理画面でURLの指定があるので、そこも独自ドメインで設定したものに変えましょう。

#まとめ

けっこう簡単
今回はwordpressでしたがlaravelやcodeigniterとかのクイックスタートもあります。
クイックスタート以外でももちろん出来るし、githubでホスティングしているリポジトリをデプロイすればwebページでデプロイも出来るのでなかなか良いです。
コマンドラインツールもあるけど大抵の事はwebで出来るようになっています。デプロイの巻き戻しとかもwebで出来ます。
「画面ポチポチしかしたくない」って人にも進めやすいと思います。でも日本語の情報少ないです。

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?