VagrantのWordMove機能を使ってさくらvpsのサイトをローカルに持ってこよう!

いきなり大きくでましたね。(笑)でもそんなに難しくなかったですけど…?私でも出来たのですから皆様方も当然できます。

まずVirtualBoxVagrantのインストールをします。前提として今回はホストOSとしてLinuxのUbuntu 16.04を使っていきます。WindowsでもMacでも構いません。ただしホストがWindowsだとコマンドプロンプトやパワーシェルだけでは一部出来ない事がでてくるかもしれません。Cygwinとかも必要なんですかね?Macは買うと高いのでWindowsを普段使っている方、私も含めてですが、Linux環境を用意しておくと何かと便利でお金がかからないのでおすすめです。ターミナルがデフォルトで充実していますので…VagrantでそもそもVBoxの仮想を使っていますので、ホストとしてWindowsで仮想Linuxを使うとそのまた仮想でネストして遅いですし、複雑になってきます。今回のWordMoveではVagrantで仮想Ubuntuを立ち上げてそれにssh接続して、さらにそこからさくらvpsにsshをかけるというこれ自体がネストsshですね。ホストが仮想だったら3重の入れ子構造になり見通しが悪くなります。

VirtualBoxとVagrantのインストールは済んだとして次にVCCWという言ってみればUbuntuとWordPress等が最初から入っている仮想イメージを導入します。まず作業用ディレクトリを作成します。~$はホームディレクトリという意味です。

~$ vagrant plugin install vagranthostsupdater

~$ mkdir vagrant

~$ cd vagrant

~$ mkdir ubuntu

~$ cd ubuntu

~$ git clone https://github.com/vccw-team/vccw.git

~$ cd vccw

~$ cp provision/default.yml ./site.yml

~$ vi site.yml

ここで、hostnameを適当にsakura1.devに変更langをjaに変更以上で:wq

~$ vagrant up ここは暫く時間がかかります…

はいおしまいで仮想環境VCCWの完成です。簡単ですね?ブラウザでhttp://sakura1.devにアクセスしてWordPressのホームページが閲覧できます。ここまでで、つまずく所は無いと思います。VirtualBoxというか、仮想を初めて使う方はBIOSで仮想化を有効にしておきましょう。

さて次にですが、ここはちょっと難しいのかな?前提として、さくらvpsのssh鍵認証ができている前提で進めます。

ホスト端末で

~$ vagrant ssh

これで仮想Ubuntuにssh接続できます。ではWindows10環境で設定したさくらvpsの鍵をどうやって入手するのか?ここは技術が入ります。笑 VCCWの仮想はCentOSではなく、Ubuntuでした。どうでもいいです…

WindowsのHDDがホストにマウントされていますので、鍵ファイルをvccwホルダにコピーします。鍵ファイル適当にパーミッションを700くらいにしてみる。id_rsaは700でいいはず?というか、これでうまくいったのです。この辺りでさくらvpsにssh接続して確認します。

vagrant@sakura1:/vagrant$ ssh -i id_rsa -p ポート sakura_account@ドメイン名

ここで、接続できないとWordMoveでさくらvpsからWordPressのデータを引っ張ってこられません。いよいよMovefileを編集します。設定する箇所はproduction:以下vhost:にドメイン名wordpress_path:にwp-config.phpのあるディレクトリdatabase:以下wp-config.phpと同じ内容を書いて下さい。ちなみに私はhost:localhost port:3306と変更しました。後はssh:以下ですが、host:ドメイン名 user:ユーザアカウント port:ポートしました。ユーザアカウントってvpsでの一般ユーザ名ですよ。上のsakura_accountも同じ意味で使ってます。portはデフォルトの22から変えています。これでWordMoveいけるでしょうか?私はエラーが出ました。内容はmysqldumpがwp-content以下に書き込みできないという感じでした。ずばりリモート側wp-contentの所有権を777に変えればOKでした。さくらvpsにssh接続してルートになり


2017年1月22日追記

wp-contntの上記のエラーともう一つ

Authentication failed for user ユーザ名@ドメイン名 (Net::SSH::AuthenticationFailed)

と二つ出ます。このエラーの対処法はターミナルで

vagrant@sakura1:/vagrant$ ssh-add -k id_rsa

vagrant@sakura1:/vagrant$ ssh-add -l id_rsa

でid_rsaの秘密鍵をsshに登録すれば大丈夫と思います。申し訳ありませんでした。何で気づいたのか?それはこのマルチサイトをWordMoveしていてこのエラーが出ました。前回の通常サイトでもこのコマンドが抜けていたことを思い出し修正しています。マルチサイトで、WordMoveして親サイトは問題ありませんでした。ローカル側のwp-config.phpを手動で編集してマルチサイト有効化をしなければいけないようです。これはまだ試していませんが…改めて書きたいと思います。でも考えてみればApacheのhttpd.confも当然書き換えが必要でしょうね。マルチサイト化すると色々手間なのかな?特権管理者しかプラグインを入れられないとか、そうなんでしょうね。


chmod 777 wp-content

これは一時的にしておいた方が安全ですよね。もし不幸にしてruby関係のエラーがずらずらと出たらパーミッションのエラーが大半と思われます。それと私の環境では?ローカル側のwp-config.phpでデータベースインデックスをリモート側と同じにしなければサイトがローカルで表示出来ませんでした。あっ!コマンドは

vagrant@sakura1:/vagrant$ wordmove pull –all

以上です。皆様うまくいきましたか?お疲れ様でした…

WordMoveを使ってさくらvps上のサイトをローカルに引っ張る

WordMoveを使ってさくらvps上のサイトをローカルに引っ張る

スポンサーリンク

シェアする

フォローする

スポンサーリンク