Wordmoveとは
- Wordpressのデータをサーバー〜ローカル間で転送できるツール
ex: https://github.com/welaika/wordmove
前提
- Mac / 10.12.4 Sierraで作業
- Virtual Box, Vagrantをインストール済
- VCCWでWordpressをインストール済
設定
設定ファイル
プロジェクトルートにある。
# VCCWでWordpressをインストール済
.
├── LICENSE
├── Movefile.yml # これが設定ファイル
├── README.md
├── Vagrantfile
├── ansible.cfg
├── provision
├── wordpress
├── wp-cli
└── wp-cli.yml
内容
※ YAMLのためインデントがずれないように注意する
ref: YAML Init(YAMLのlint)
local:
vhost: "ローカル環境のドメイン"
wordpress_path: "ルートからWordpressディレクトリへのパス"
database:
name: "wordpress"
user: "wordpress"
password: "wordpress"
host: "localhost"
charset: "utf8"
# paths: # you can customize wordpress internal paths
# wp_config: "wp-config-custom.php"
# wp_content: "wp-content"
# uploads: "wp-content/uploads"
# plugins: "wp-content/plugins"
# mu_plugins: "wp-content/mu-plugins"
# themes: "wp-content/themes"
# languages: "wp-content/languages"
production:
vhost: "本番環境のドメイン"
wordpress_path: "Wordpressディレクトリへのパス" # ルートからの絶対パス
database:
name: "データベース名"
user: "ユーザー名"
password: "パスワード"
host: "ホスト"
port: "3308" # サーバーの内容に合わせる
mysqldump_options: "--max_allowed_packet=50MB" # SSHでのみ有効
exclude:
- ".git/"
- ".gitignore"
- ".sass-cache/"
- "bin/"
- "tmp/*"
- "Gemfile*"
- "movefile.yml"
- "wp-config.php"
- "wp-content/*.sql"
ssh:
host: "SSHホスト"
user: "ユーザー名"
port: 22 # オプショナル
rsync_options: "--verbose" # オプショナル
サブディレクトリにWordpressをインストールした場合
paths
にサブディレクトリを追記する。
# Movefile.yml
# サブディレクトリにWordpressをインストールした場合のディレクトリパス指定
paths:
wp_config: "admin/wp-config.php"
wp_content: "admin/wp-content"
uploads: "admin/wp-content/uploads"
plugins: "admin/wp-content/plugins"
mu_plugins: "admin/wp-content/mu-plugins"
themes: "admin/wp-content/themes"
languages: "admin/wp-content/languages"
使う
-
vagrant up
(起動) -
vagrant ssh
(SSHで接続) -
cd /vagrant
(~/vagrant
ディレクトリに移動) -
wordmove push
またはwordmove pull
pull(リモートからローカルへ)
# ファイル全てを本番環境(リモート)へpull
$ wordmove pull -e production --all`
push(ローカルからリモートへ)
# ファイル全てを本番環境(リモート)へpush
$ wordmove push -e production --all`
オプションコマンド
--all # ファイル全部
-w # `/wp-content/`ディレクトリ(除外したファイル以外)のみ
-u # `/wp-content/upload/`ディレクトリのみ
-t # `/wp-content/theme/`のみ
-p # `/wp-content/plugins/`のみ
-l # `/wp-content/language/`のみ
-d # データベースファイルのみ
-v # [TBD] verbose
-s # dry runモードで実行、実際にはファイル転送されない
-e # 環境(push先・pull元)を指定
-c # `wp-config.php`のみ
-h # wordmoveの使い方
-v
メッセージの詳細表示。
[TBD]
-s
いわゆる dry runモード。リモートのサーバの接続チェックなどに利用します。
転送確認する時などに使う。
-e
オプションの後にmovefile.yml
で設定した環境の名前を指定できる。
デフォルトにはlocal
・production
がある。
その他
ssh接続できない場合
対応
鍵情報を登録する。
# 1. ssh接続
$ vagrant ssh
# 2. ルート権限になる
$ sudo su -
# 3-a. /home/vagrant/.sshに移動
[root@ユーザー名] cd /home/vagrant/.ssh
# 3-b. /home/vagrant/.sshが無い場合はディレクトリを作成
[root@ユーザー名] ls -a /home/vagrant
[root@ユーザー名] mkdir .ssh
[root@ユーザー名] cd .ssh
# 4-1. 鍵ファイルを追加する
[root@ユーザー名] vi 鍵ファイル名 (&内容を追加する)
# 4-2. ファイルパーミッションを変更
[root@ユーザー名] chmod 600 鍵ファイル名
# 5. configファイルを追加する
[root@ユーザー名] vi config (&内容を追加する)
# 6. 終了
[root@ユーザー名] exit
VCCW (v3)の場合
VCCW (v3)でFTPでWordmoveする場合、lftpをインストールしておかないとlftp: not found
となる。
対応
lftpをインストールする。
# 1. $ vagrant ssh # ssh接続
# 2. $ sudo su - # ルート権限になる
# 3. インストール前の確認
# lftp: not foundと出たらインストールが必要
[root@ ~] lftp -v
# 4. インストール
[root@ ~] apt-get install -y lftp
# 5. インストール後の確認
# 以下が表示されればインストール完了
[root@ ~] dpkg -l | grep lftp
ii lftp 4.6.3a-1build2 amd64 Sophisticated command-line FTP/HTTP/BitTorrent client programs
# 6. 終了
[root@ ~] exit
ref: https://github.com/welaika/wordmove#ftp
SQL syntaxエラーが出る場合
- このエラーはVCCW (v2)で確認されたものですが念のため記載します
- また、このエラー内容でのWordmoveはバージョン1.2.0ですが、VCCW (v2)の場合はバージョンを上げることをおすすめします
エラー内容
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Warning: mysqli::\_\_construct(): (HY000/2002): Connection refused ' at line1/usr/local/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/wordmove-1.2.0/lib/wordmove/deployer/base.rb:147:in `run': Return code reports an error (RuntimeError)
・
・
・
対応
ファイルのパーミッションが正しくない(サーバーとローカルのバーミッションが一致していない)かもしれないため、
- サーバーデフォルトのパーミッションへ変更する