word bench7月号
TRANSCRIPT
VCCW + WP-CLI + WordMove
でローカル開発とリモートの
メンテナンスを楽にする
本日の内容• VCCW
• WP-CLI
• WordMove
• リモートからpullしてローカルで確認
本日の内容• VCCW
• WP-CLI
• WordMove
• リモートからpullしてローカルで確認
VCCWとは?
開発者の宮内さん→ WP Tolal Hacksやその他プラグイン多数https://profiles.wordpress.org/miyauchi#content-plugins
• Vagrant + VirtualBox
• サクッと作れて、要らなくなったらサクッと削除
• 起動速い
• テーマ作成用などもある
vccw-team https://github.com/vccw-team
VCCWとは?
• 現在のバージョン v3
• 起動が速くなった(vagrant up)
• プロビジョナがChefからAnsibleへ
• OSがCnetOSからUbuntuへ
• PHPが5.4から7.xへ
• Rubyが2.1から2.3へ
• Nodeが0.10から6.xへ
VCCW v3での変更点と新機能まとめ - Qiita http://qiita.com/miya0001/items/
041e9363ff81695a2251
VCCWとは?
• Ubuntu 16.04 Xenial64 • Subversion • Git • jq
• WP-CLI & WordPress • WP-CLI • WordPress i18n Tools • WordPress Coding Standards for PHP_CodeSniffer
VCCWとは?• PHP 7 • PHPUnit • Composer • PHP_CodeSniffer
• MySQL 5.7.x • Apache 2.4.x • NodeJS latest
• Ruby 2.3
• Bundler
• Wordmove
• MailCatcher
http://vccw.cc/#h2-0
• Getting Startedに沿って行くだけでOKhttp://vccw.cc/#h2-2
• カスタマイズもOKhttp://qiita.com/miya0001/items/
041e9363ff81695a2251#%E3%82%B0%E3%83%AD
%E3%83%BC%E3%83%90%E3%83%AB%E8%A8%AD
%E5%AE%9A
VCCWとは?
本日の内容• VCCW
• WP-CLI
• WordMove
• リモートからpullしてローカルで確認
• WordPress を管理するためのコマンドラインツール
• プラグインのアップデートやマルチサイトのセットアップなどの多くのことをブラウザ無しで行うことができる
WP-CLIとは?
• sshが利用できるサーバであれば、共用でもほぼ使える
• WordPressのあるディレクトリ以下で実行
• インストールも全然難しくない
• ローカル、リモート両方にあると更に便利
WP-CLIとは?
• $ wp plugin install rest-api ̶activate
• $ wp theme activate twentyseventeen
• $ wp db export backup.sql
• $ wp search-replace “vccw.dev””vccw.com”̶export=production.sql
WP-CLIとは?
• http://wp-cli.org/ja/#インストール方法↑↑上記の手順どおり
• 共用サーバへ設置する際の参考サイトレンタルサーバに『WP-CLI』をサクっと入れるシェルス
クリプト作ってみたよ ‒ 鉄王 https://
www.tecking.org/archives/4169
WP-CLIとは?
• Rubyで作られたWordPress専用のデプロイツール
• Wordmove push, pullのシンプルなコマンド
• テーマ、プラグイン、DBなど個別に同期可能DBに関しては置換される
• ステージング、本番など、複数の環境と同期可能
• Movefileで設定(yamlファイルでシンプル)
WordMoveとは?
$ wordmove help
Commands:
wordmove --version, -v # Print the version
wordmove help [COMMAND] # Describe available commands or one specific command
wordmove init # Generates a brand new Movefile
wordmove pull # Pulls WP data from remote host to the local machine
wordmove push # Pushes WP data from local machine to remote host
シンプルなコマンド
$ wordmove help pull
Usage:
wordmove pull
Options:
-w, [--wordpress], [--no-wordpress]
-u, [--uploads], [--no-uploads]
-t, [--themes], [--no-themes]
-p, [--plugins], [--no-plugins]
シンプルなコマンド
-m, [--mu-plugins], [--no-mu-plugins]
-l, [--languages], [--no-languages]
-d, [--db], [--no-db]
-v, [--verbose], [--no-verbose]
-s, [--simulate], [--no-simulate]
-e, [--environment=ENVIRONMENT]
-c, [--config=CONFIG]
[--debug], [--no-debug]
[--no-adapt], [--no-no-adapt]
[--all], [--no-all]
Pulls WP data from remote host to the local machine
• VCCWでプロジェクト作成
• Movefileを編集
• リモートからpull
• ローカルで確認
• ロリポップでやってみる
やってみる
• VCCWでプロジェクト作成
• Movefileを編集
• リモートからpull
• ローカルで確認
• ロリポップでやってみる
やってみる
やってみる
$ cd /Users/xxxx/Desktop && mkdir xxxx
プロジェクト作成(場所はどこでもOK今回はデスクトップ)
やってみる• プロジェクトに移動してVCCWをダウンロード$ cd project && wget https://github.com/vccw-
team/vccw/releases/download/3.3.2/
vccw-3.3.2.zip
• zipファイルを解凍 $ unzip vccw-3.2.2.zip
やってみる
やってみる• vccw直下にprovision/default.ymlファイルをsite.ymlとしてコピーする
$ cp provision/default.yml site.yml
やってみる• site.ymlを編集vim site.yml
エディタで開いて編集でOK!! 👍
やってみる• site.ymlを編集vim site.yml
エディタで開いて編集でOK!! 👍
やってみる#
# WordPress Settings
#
version: latest
lang: ja
title: Welcome to the VCCW
multisite: false
rewrite_structure: /archives/%post_id%
※ お好みで 😉
やってみる#
# WordPress Path
#
wp_siteurl: 'wp' # Path to the WP_SITEURL like "wp"
wp_home: '' # Path to the WP_HOME like "wp"
#
# WordPress User
#
admin_user: admin
admin_pass: admin
admin_email: [email protected]
※ お好みで 😉
やってみる#
# WordPress Database
#
db_prefix: wp_
db_host: 192.168.33.10 ← ホストマシンから操作できるようになる
db_name: wordpress
db_user: wordpress
db_pass: wordpress
※ お好みで 😉
やってみる#
# WordPress Default Plugins
# Plugin's slug or url to the plugin's slug.
#
plugins: [] ← あらかじめインストールしておきたいプラグインを設定
#
# WordPress Default Theme
# Theme's slug or url to the theme's .zip.
#
theme: ‘’ ← デフォルトテーマを設定したい時
※ お好みで 😉
やってみる#
# WordPress Options
#
options:
blogdescription: Hello VCCW.
#
# WordPress Multisite Options ← マルチサイトの設定
#
multisite_options: {}
※ お好みで 😉
やってみる#
# The values of wp-config.php ← wp-config.phpの設定
#
force_ssl_admin: false
wp_debug: true
savequeries: false
#
# Addtional PHP code in the wp-config.php
#
extra_wp_config: ¦
// Addtional PHP code in the wp-config.php
// These lines are inserted by VCCW.
// You can place addtional PHP code here!
※ お好みで 😉
やってみる#
# Theme unit testing ← テーマユニットテストデータの設定
# 日本語のテストデータに変更も可能
#
theme_unit_test: false
theme_unit_test_uri: https://raw.githubusercontent.com/WPTRT/
theme-unit-test/master/themeunittestdata.wordpress.xml
# theme_unit_test_uri: https://raw.githubusercontent.com/
jawordpressorg/theme-test-data-ja/master/wordpress-theme-
test-date-ja.xml
※ お好みで 😉
やってみる#
# DB will be reset when provision ← プロビジョニングした際DBをリセットするかど
うか
#
reset_db_on_provision: true
#
# RubyGems
# Wordmove will be forcibly installed.
#
ruby_gems:
- bundler
- wordmove ← WordMove
※ お好みで 😉
やってみるmailcatcher: true ← 開発環境でメールの確認可能
wp_i18n_tools: true
#
# NPM modules
#
npms: []
※ お好みで 😉
やってみる#
# composer
#
composers:
- phpunit/phpunit:5.6 ← PHPUnit
- squizlabs/php_codesniffer:̃2.0 ← phpcs
- wp-coding-standards/wpcs:* ← WordPressコーディングスタンダード
# - phpmd/phpmd:*
# - sebastian/phpcpd:*
# - phploc/phploc:*
# - phing/phing:*
※ お好みで 😉
やってみる#
# wp-cli package commands ← パッケージコマンド追
加
#
wp_cli_packages:
- vccw/wp-cli-scaffold-movefile:@stable
※ お好みで 😉
やってみる#
# Linked Clone for Vagrant v1.8
#
linked_clone: false
↑↑trueにすると、ディスク使用量を減らせる
一つのマスターからその差分をディスクイメージとして保存
する。
※ お好みで 😉
やってみる#
# PHP ini values ← php.ini
#
php_ini:
date.timezone: UTC
default_charset: UTF-8
mbstring.language: neutral
mbstring.internal_encoding: UTF-8
post_max_size: 1024M # Same with VVV
short_open_tag: Off
session.save_path: /tmp
upload_max_filesize: 1024M # Same with VVV
xdebug.remote_enable: true
xdebug.remote_host: 127.0.0.1
xdebug.remote_port: 9000
xdebug.profiler_enable: true
xdebug.idekey: VCCWDEBUG
xdebug.remote_connect_back: true
xdebug.remote_autostart: true
synced_folder: wordpress ← ホストマシンとファイルを共有・同期
document_root: /var/www/html ← ドキュメントルート
※ お好みで 😉
やってみる• Site.ymlの編集が終わったら保存
• ターミナルでプロジェクトのvccwディレクトリへ移動※ 今回の場合
$ cd /Users/xxxx/Desktop/private-hibou-vccw-test/vccw
$ vagrant up
やってみる• 構築中……
やってみる• 環境で若干変化はあるが、初回起動に7分27秒 ⏳
やってみる• hostnameでアクセス
• VCCWでプロジェクト作成
• Movefileを編集
• リモートからpull
• ローカルで確認
• ロリポップでやってみる
やってみる
やってみる• Movefileができあがっている
やってみる• Movefileが作成されている(site.ymlの設定は反映されている)
やってみる• リモート(ステージング・本番など)を設定する
やってみる• ゲストマシンにログインする$ vagrant ssh
やってみる• Movefileのあるディレクトリへ移動(synced_folder) $ cd /vagrant
• リモートからpullする- テーマ
- uploads
- プラグイン
- データベース
$ wordmove pull -tupd
やってみる
やってみる• リモートからどどーーっとダウンロード中……(同期)
• VCCWでプロジェクト作成
• Movefileを編集
• リモートからpull
• ローカルで確認
• ロリポップでやってみる
やってみる
やってみる• 同期完了 😀
やってみる• pull, pushする際、pull時はローカルに、push時はリモートのwp-content配下にDBのバックアップができる 😍
• VCCWでプロジェクト作成
• Movefileを編集
• リモートからpull
• ローカルで確認
• ロリポップでやってみる
やってみる
ロリポップでssh• スタンダードプラン、エンタープライズプランで利用できるぽい
• VCCW + WP-CLI + WordMoveは、ローカルから操作する(サーバにログインしてダウンロードして…とかはやらない)
• WordMoveでは
• テーマ
• プラグイン
• 画像(uploads)
• DBはssh -tでWP-CLIを使ってDBをエクスポート
• scpでダウンロード
• ローカルでwp search-replace使って置換
ロリポップでやってみる
• ssh nickname -t "cd web/ && ̃/bin/wp db export backup.sql" && scp Host:/path/to/wordpress/
backup.sql . && cd wordpress && wp db import ../
backup.sql && wp search-replace 'old(remote)'
'new(local)'
ロリポップでやってみる
• 実演
ロリポップでやってみる
• 一度作っておくとミスがない
• コンパネでphpMyAdminログインして、DBエクスポートしてダウンロードして……( ꒪⌓꒪)
• プロジェクト毎にfrom_remote_backup_db.shとか用意しておくと便利
ロリポップでやってみる
• サーバ側にもWP-CLI必要
• sshは公開鍵認証でログインできるようにしておくとパスワード要らない(作業が一度で済む)
• ssh config用意しておくと便利
• 実行するだけだからとにかく楽!!
ロリポップでやってみる
質問
ありがとうございました!!