本記事は次の記事を参考に実施した。
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に残っているせいでうまくいかないことがあるらしい。ネットワーク設定リセットすることになると言ってくれているので気にせず進む。
#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仮想サーバーに接続して配置しました)
####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を編集する。
参考までに筆者の設定ファイルを載せておく。
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 が不要だった。