Help us understand the problem. What is going on with this article?

WordMoveを使いたくてVCCW導入(Windows10/VirtualBox6/Vagrant)

本記事は次の記事を参考に実施した。
https://tonari-it.com/wordpress-local-environment/

環境
PC Lenovo ThinkPad X1Carbon2016
OS Windows10(64bit HomeEdition)
CPU i7-6600

vccwの設置ディレクトリ D:/vccw ですすめた

VirtualBox(5.x)のアンインストール

仮想PCをすべて解除してからwindowsのアプリ-アンインストールを使う。

VirtualBox(6.04)のインストール

https://www.virtualbox.org/wiki/Downloads

デフォルト設定でインストールを進める。ネットワークについて警告が出るが無視して進める。
※VirtualBox5.xをアンインストール・再インストールするとネットワーク設定がPCに残っているせいでうまくいかないことがあるらしい。ネットワーク設定リセットすることになると言ってくれているので気にせず進む。
2019-04-14_173723.png

Vagrant(2.2.4)のインストール

https://www.vagrantup.com/
デフォルト設定でインストールを進める。

vargrant-hostupdaterプラグインのインストール

VCCWとVargrantの連携にあたってhostsにへの設定を意識せずにすむものらしい。
コマンドプロンプトに
vagrant plugin install vagrant-hostsupdater

VCCWのインストール

VCCWをGithubからcloneする

任意のディレクトリに移動してgit cloneコマンド
cd d:/vccw
git clone https://github.com/vccw-team/vccw.git

vccw/provision/default.yml、vccw直下にコピーし、site.ymlにリネーム

hostnameは任意に変更可能
ipは任意に変更可能
lang:jaに変更

仮想マシンを起動

vccwディレクトリに移動して、vargrantコマンドを実行。
vagrant up

vagrant up でエラーを吐いてうまくいかない

vagrant up 後に vagrant status で確認すると仮想マシンがないという結果に。
ログを見てみるとエラーを吐いていた。権限の問題か?
C:/Users/xxxxxxxx/.vagrant.d/gems/2.4.4/gems/vagrant-hostsupdater-1.1.1.160/lib/vagrant-hostsupdater/HostsUpdater.rb:98:in 'initialize': Permission denied @ rb_sysopen - C:/WINDOWS/system32/drivers/etc/hosts (Errno::EACCES)
コマンドプロンプトを管理者権限で開いてvagrant up再実行、いけた。

vagrant status
vccw.test running (virtualbox)

仮想マシンの停止はvagrant haltで。

Poderosaのインストール

引用サイトではCygwinで解説されていますが筆者はPoderosaでSSH接続実績があったのでPoderosaで実施。
要はSSH接続できればなんでもよい、TeraTermでもOK。

Poderosaで公開鍵と秘密鍵作成と設定、以下サイト参照。

エックスサーバーへのSSH接続方法(Poderosa)
https://usedoor.jp/howto/digital/pc/poderosa-xserver-ssh-setsuzoku/

作成した鍵を/home/vagrant/.ssh/ 配下に配置して権限を600に変更(筆者はWinSCPでVagrant仮想サーバーに接続して配置しました)
2019-08-06_122145.jpg

vagrantからエックスサーバーにssh接続できることを確認する

ssh [xserverユーザー名]@[xserverユーザー名].xsrv.jp -p 10022
ここで色々と詰まる、以下メモ。
/home/vagrant/.ssh に移動
公開鍵と秘密鍵の生成
公開鍵をxserverに設定
秘密鍵のパーミッションを0600に変更

vagrant ssh でvagrant内にアクセス

vagrant ssh /home/vagrant/に入る
cd /vagrant/ /home/vagrant/vagrant/に移動(vagrantの先頭スラッシュは必要)

Movefile.ymlを編集する

WindowsのD:/vccw/Movefile.ymlを編集する。
参考までに筆者の設定ファイルを載せておく。

Movefile.yml
global:
  sql_adapter: default

local:
  vhost: "http://vccw.test10"     # site.ymlのhostnameと合わせる
  wordpress_path: "/var/www/html" # use an absolute path here

  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: "https://[xserver-wordpress-url]"
  wordpress_path: "/home/[xserver-username]/[xserver-domain]/public_html" # use an absolute path here

  database:
    name: "[xserver-mysql-name]"
    user: "[xserver-mysql-user]"
    password: "[xserver-mysql-password]"
    host: "[xserver-mysql-host]"
    # port: "3308" # Use just in case you have exotic server config
    mysqldump_options: "--max_allowed_packet=50MB" # Only available if using SSH

  exclude:
    - ".git/"
    - ".gitignore"
    - ".sass-cache/"
    - "bin/"
    - "tmp/*"
    - "Gemfile*"
    - "movefile.yml"
    - "wp-config.php"
    - "wp-content/*.sql"

  ssh:
    host: "[xserver-domain]"
    user: "[xserver-username]"
    port: 10022
    rsync_options: --verbose

wordmove pullしてみる

wordmove pull --all Movefile.yml の設定内容に従い、本番環境からソースを取得してローカル環境に反映させる。
途中xserverとのssh接続するためのパスワードを5回ほど問われる、けっこう面倒だ。
D:\vccw\wordpress配下にソースが上書きされていることが確認できたらブラウザからアクセスしてみる。
http://vccw.test10/ 接続確認OK

databaseのpullが失敗している模様

ローカルwordpressにブラウザアクセスしてとりあえずテーマ情報などは同期されたものの、記事の内容が同期されていなかった。
もう一度databaseだけpullしてみる。
wordmove pull -d

mysqldump: Got error: 2003: "Can't connect to MySQL server on 'mysql1106.xserver.jp' (111)" when trying to connect (Wordmove::ShellCommandError)

vagrant内からxserverのmysqlへのssh接続ができないのかを怪しんで以下コマンドを実行するが、ちゃんとつながる
vagrant⇒xserverへSSH接続

xserver⇒mysqlへ接続
[xserverユーザー名@sv1128 ~]$ mysql -h mysql1106.xserver.jp -u [mysqlユーザー名] -p [mysqlデータベース名]
⇒パスワードを聞かれる[mysqlのパスワード]を入力
問題なくつながる!

無茶苦茶ハマった、port: "3308" の設定が邪魔だった。
xserverでのmysqlデフォルト設定の場合はport設定をコメントアウトすること。

wordmove pushしてみる

wordmove push --all
ローカル環境のwordpressで記事編集したり画像ファイルをアップロードしたり色々してから--allしてみたけど問題なくきれいにxserver環境に反映されて感動した。
すごくはまって時間もかかったけど報われた感がつよい。

はまった点

vagrant up でエラーが出た
⇒筆者はGitBushを使っていたが、管理者権限でコンソールを立ち上げてからvagrant up すると解決

vagrant仮想サーバーへの秘密鍵の配置の仕方がわからなかった
⇒苦し紛れにWinSCPで接続して配置した

wordmoveをどこから実行したらいいかわからなかった。
⇒vagrantにssh接続
[D:\vccw]$ vagrant ssh
⇒[home/vagrant/vagrant]に移動してwordmove pull --all
[home/vagrant]$ cd /vagrant
[home/vagrant/vagrant]$ wordmove pull --all

vagrantからxserverにssh接続できない
⇒[home/vagrant/.ssh]$ ssh鍵作成(他サイト参照)

wordpressのdatabaseのpullができない
⇒Movefile.ymlのproduction - database - port:3308 が不要だった。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした