2015年5月16日土曜日

第41回 WordBench大阪「VCCW vs Wocker」に参加して #wbosaka

今回は、午前中にWordCamp Kansai 2015の実行委員会合があったので、朝から会場入りしてます。白熱したやり取りがあり、結構お腹減りましたね.. 昼食は近場でメンバーの何名かと一緒に食べ、そこでもいろいろと話し合いました。



さて、今日はWordPressをどのような基盤ツールを使って構築するかについての話です。
これだけいうと、「今年のWordBench大阪はデザイナー中心でやるぜ〜」ってどっかでつぶやかれていた気がしますが、システム寄りじゃんって思うかもしれません。
でも実際WordPressをどのように構築するかは、デザイナーの方々にとっても切実な課題じゃないでしょうか。基盤系エンジニアなら「なんとでもなるよん!」ってことでも、デザイナーはそう簡単に自前で構築できるか、と問われると答えられないケースもあるんじゃないかなと思います。

今回の2つのツールの紹介バトルは、自前パソコンでもサーバー上でも手軽にWordPressが動作できる環境ができるよ!!ってことじゃないかなーと思います。

さてさて、どういう話が聞けるか楽しみです!

特にわたしは多数のサーバーを管理しているので、そろそろツールを使わないとダメだよなぁって感じです。

プログラム

関連情報


濃い内容だったので、整理や補足(実際にやってみて問題が起こった部分の説明含む)が大変でした.... さていきますよ〜


VCCW - WordPress development environment

VCCWを使ってチーム共有:https://firegoby.jp/archives/5921
VCCW: 2.0

VCCW = Vagrant + Chef + WordPRess

WordPressを立ち上げる環境を設定(Chef)して、Vagrantを使ってVirtualBox上のCentOSに自動でWordPressが動作する仮想環境を作成するツール。
さらにサーバー環境をローカルに、ローカル環境をサーバーへ同期できるのがすぐれもの!同期時にバックアップをとってくれるので、間違って同期しても安心!

つまりそれだけの環境をいくつかの操作だけで構築できちゃうという感じです。
デザイナーの方々もMAMP第14回WordBench大阪(2/16)に参加してを参考)あたりは触ったことがあったんじゃないでしょうか。
でもそれで作成される環境は、あくまでローカル環境での構築。
このツールを使えば、サーバー、ローカル問わず様々な場所で共有することが出来るのが特徴。

※まぁMAMPも自前の共有だけなら、Dropboxなどに突っ込む方法もあるんですけどね..

FacebookなどはChefというツールを使って、環境を整えているらしい。

18人が開発に携わっていて、それぞれ会ったこともない人たちがほとんど。
3日に1度ぐらいの頻度で更新が繰り返されている。

★ Stars よろ〜


モチベーションをあげるとても大きな原動力になるので、GitHubやWordPressプラグインなどのレビュー部分に★をつける機能があるので、使っているなら是非★をつけて〜

導入される開発環境


導入方法:http://vccw.cc/

でもgitでcloneする方が簡単そうなのでそうした。
  1. VirtualBoxのインストール
  2. Vagrantのインストール
  3. vagrant-hostsupdaterプラグイン(オプション)
      vagrant plugin install vagrant-hostsupdater
  4. mkdir ~/vccw
  5. cd ~/vccw
  6. git clone https://github.com/vccw-team/vccw.git
  7. cd vccw 
  8. vagrant up

でダウンロードされていき、構築されます。

http://wordpress.local にアクセスします。

設定変更(site.yml)


WordPressの記事以外の設定はほぼすべて設定できる。

デフォルト共通設定(~/.vccw/config.yml)


lang: ja
memory: 1024
cpus: 2

など利用するメモリ使用量なども設定できる。
(デフォルトは256(MB)らしい)

Wordmove deployment(サーバーとの同期)


  • wordmove pull --all  (-e サーバ先を選択)
  • wordmove push --all  (-e サーバ先を選択)

WP-CLI


コマンドラインでWordPressを操作するツール。
GUIだとマウス操作などで毎回作業しなければならない。

コマンドラインだと予め計画したやりたいことをメモっておいて、

vagrant ssh -c "wp scaffold plugin oreore"

プラグイン生成のための雛形が出来る。

vagrant ssh -c "wp scaffold child-theme oreore-theme --parent_theme= twentyfifteen --activate"

wp-content/theme/oreore-theme に、twentyfifteenの子テーマに必要なファイルが自動生成され、そのテーマが有効化されます。

Units Test


※下記がスライドのP31に記載される。ショートコード、[hello]◯◯[/hello] を記事にいれると、「Hello ◯◯」にするプラグインについて、その動作を自動でやってくれるってものみたいですね。つまり意図したショートコードの動きになっているかをチェックするってことか。

<?php 
  class SampleTest extends WP_UnitTestCase
{
  function test_sample()
  {
     $this->assertEquals(
         'Hello Hanako!',
         do_shortcode('[hello]Hanako[/hello]')
     );
  }
}
?>

CI - Continuous Integration

※いちいち、どのバージョンで動作するなんてテストするは面倒だし、そのための労力をかけるのは無駄ですよね。そういうのを自動化しようというコンセプトのようです。

Travas CI


っていうサービスはとても便利らしい。

構築面倒じゃない?


最初の一度は、確かに3倍ぐらいの手間がかかるかもしれない。
ただし、一度やってしまえば、二度目は流用できるので大幅に労力を減らすことができる。

裏ワザ集


  • 新サイトを立ち上げたい
    • cd oreored.dev
    • grunt-init vccw
  • bundle exec rake spec
    • WordPress管理者・編集者が何かしたけど分からない場合に、このコマンドを叩くと変更ファイルが分かるらしい

 豆知識(付帯知識)


  • data.gov (WordPressをローカルから同期して構築しているとのこと)
  • sites.usa.gov(アメリカ政府がおすすめするサイト集)
     ※Contact Form 7が紹介されているらしい、、確かに...プラグインをなにを使うかの指標に一つになりそうですね。
  • iandunn/wordpress-meta-environment (WprdCampなどのサイトを自前で構築してテストできる環境設定がアップされている。。ただ構築に1時間以上かかるらしいとのこと)
  • PHP7はかなり速いらしい(PHP5の次が7になる)

Wocker


カイトさんは、日本でのWordPressのCore Contributor最長記録保持者ということ。
WordPressにログインしたダッシュボードに掲載される。

特徴:新しい環境を構築するのに3秒でできちゃう!!


Dockerとは


Docker自体は、OS(Guest OS)が入っていないため、軽くて容量も小さい。
ただし、WP-CLIのようなコマンドを叩く場合には、vagrantで起動したあと、各コンテナにアクセスしてから利用するという2段階構えとのこと。
※ふむ、、、、wocker 使ってみた感レポ(Qiita)  などをみると、wp コマンドは最初から入っているみたいですね。

Wocker Overview


  • vagrantを利用して、Virtual Machine + Docker Engine (Core OS)を立ち上げる
  • wockerコマンドで、Wockerを利用することになる。

Wockerのインストール

  1. VirtualBoxのインストール
  2. Vagrantのインストール
  3. vagrant-hostsupdaterプラグイン(オプション)
      vagrant plugin install vagrant-hostsupdater
  4. git clone https://github.com/wckr/wocker.git && cd worcker 
  5. vagrant up
http://wocker.dev にアクセスします。

※Macの場合には、システム環境設定のファイヤウォールが入になっていると、NFSマウントに失敗するケースがあります。

で止まってしまっていた。

これはMacのファイヤウォールの詳細設定の「外部からの継続をすべてブロック」していると失敗します。これを一時的にOFFにしておくといいでしょう。
そこまで設定している人はあまりいないかも (^^;ですが、デフォルトでファイヤウォールはOFFなので、これはONにしておくといいと思います。ダイレクトな不正アクセスを防ぐ(共用無線使っている場合とか特に)ことがある程度できますので。

ダメなケース



動作するケース(1)

下記のようになっていたら動作する。



「署名されたソフトウェアの自動接続を無効にしている」ので、最初に一度目にvagrant upすると、



のように許可を求めてくるので「許可」する

動作するケース(2)
※署名されたソフトウェアは全部外部からの接続を受け付ける
自動で受け付けるのは嫌いなのであんまりつかわない。




※動作検証をGUIでやりたい!!


ということなら、インストールしたVirtual Boxを起動して、下記のようにwocker_default_◯◯が実行中だったらいいかな。下記はVCCWも動作させてるんだけど、、、あまり気にしないで...




起動方法


vagrant up の後に http://wocker.dev にアクセスできなければ、
vagrant ssh でWockerにログインして、
wocker run  で起動します。

Wocker上のWordPressへのログイン



  1. vagrant up
  2. vagrant ssh
  3. wocker ps 
    ※NAMESをメモる(下記は、mad_testlaなので、そうだと仮定とすると)
  4. wocker exec -it mad_tesla bash

で/var/www/worcker をホームにログインできて、wpコマンドなどを利用できた。

もくもくの会


今日話した内容を実際に試してみるなど、もくもくと作業をするのだ。。。
まぁわたしがなにをしたかは後日...って思ってたけど、いろいろ試したことをメモっておく。

ローカル構築したVCCWをサーバーに同期


よっしやってやろうと思ったけど、サーバーはPPTP (VPN)接続が必須にしていて、会場ネットではPPTP接続が拒否されているようで出来なかった...

VCCW+WordMoveでエックスサーバーとローカル環境を同期する(Show-web)

で簡単に出来そうなので、データベース部分以外は記述。
後はサーバーにログイン出来ないとダメなので、帰宅後か明日やろう!

VCCWでWP-CLIを使ってみる


Wockerはメモっていたけど、VCCWでは試してなかった。

vagrant up
vagrant ssh

でWordPress構築環境にログインしたら使える。

wp plugin list 

でプログインリストを出したりね。

参考:VCCWでWP-CLI(A command line interface for WordPress)を試す(whiskers)

VCCW上のWordPress自体の言語を変更する

たとえば日本語にすると仮定すると


VCCW2.0であれば、Vagrantfileファイルがある場所に、site.ymlを作成して

lang: ja

を入れて保存。

vagrant halt

でvagrantを停止し、

vagrant up

として、

http://wordpress.local/wp-admin/update-core.php

にアクセスして、、あれ変わってない!!!

これはVCCW生みの親の宮内氏に聞かねば!!ってことできいたら、

プロビジョニングしてないっしょ

って言われた。そうか。。。

vagrant up
vagrant provision

ってオッケーな感じ。。。。

これでいいかどうかはまだ未検証。
とりあえず
http://wordpress.local/wp-admin/update-core.php
にアクセスして、WordPressのアップグレードをすると、言語切り替わるみたいだが..

2015年5月16日 @kimipooh

0 件のコメント:

コメントを投稿