# ふつうのレンタルサーバーでも、VCCWとWordmoveを使って快適にローカル環境で開発しようぜ！

- リンク: https://torounit.com/blog/%e3%81%b5%e3%81%a4%e3%81%86%e3%81%ae%e3%83%ac%e3%83%b3%e3%82%bf%e3%83%ab%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc%e3%81%a7%e3%82%82%e3%80%81vccw%e3%81%a8wordmove%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6/
- 公開日: 2014-12-09T11:28:18+09:00
- 作成者: Toro\_Unit

昨日[VCCW](http://vccw.cc/)にプルリクエストを投げたらマージされ、コントリビューター
になりましたToro_Unitです。1行だけですけどね！！！

そのプルリクエストがWordmove周りのものだったのですが、プルリク投げたら宮内さんに
ブログを書けと言われたので書きます。

> [@Toro_Unit](https://twitter.com/Toro_Unit) ほえー、そうなんですね。そのことを
> ブログに書いてくれるんですね。さすがです！
> — Takayuki Miyauchi (@miya0001) [December 8, 2014](https://twitter.com/miya0001/status/541895694374559745)

> [@Toro_Unit](https://twitter.com/Toro_Unit) そ、それもブログに書いてくださいｗｗ
> ついでにSSHでもおねがいしますｗ
> — Takayuki Miyauchi (@miya0001) [December 8, 2014](https://twitter.com/miya0001/status/541896667058823168)

> [@inc2734](https://twitter.com/inc2734) [@Toro_Unit](https://twitter.com/Toro_Unit)
> それだ！ブログに書いてーｗ
> — Takayuki Miyauchi (@miya0001) [December 8, 2014](https://twitter.com/miya0001/status/541953042216546304)

## What’s Wordmove

そもそも、Wordmoveってなんぞやって話ですよね。僕もVCCWが対応したとかでそのとき初めて
名前を聞きました。

[https://github.com/welaika/wordmove](https://github.com/welaika/wordmove)

WordmoveはRuby製のWordPress用デプロイツールです。サーバー間でWordPressの環境をまる
っと同期できます。プラグインとかテーマとか、データベースとか。本体も同期できます
し、部分的にいろいろやれたりもします。言語ファイルだけとかも。

データベースの同期だと、画像のリンクがフルパスになっていて同期先で上手く表示でき
ないとかいう問題が発生しがちなのですが、そこら辺も上手い事やってくれます。

要は、WordPressをサーバーやドメイン引っ越しとか、テスト環境から本番に公開するとき
なんかに、データベースをいろいろ書き換えたりとかしますよね。そこらへんも含めてコマンド
一つでやってくれるものすごーい便利なツールです。

また、本番環境からテスト環境へデータを持ってくる等もできるので、運用中のサイトの
メンテナンスなどからでも取り入れる事ができます。

VCCWでのWordmoveの使い方は、こちらの記事を参照してください。

[WordMoveを使ってVagrant内のWordPressと本番環境を同期する！ | Firegoby](https://firegoby.jp/archives/5644)

なんか、便利そうですよね。触ってみたくなりませんか？

## さくらのレンタルサーバーでWordmoveする

先ほど紹介した宮内さんのブログだとAWSの話なのですが、これをさくらのレンタルサーバー
でやります。

Movefileはこんな感じです。

    ```decode:true
    local:
      vhost: "http://wordpress.local"
      wordpress_path: "/var/www/vhosts/i-09798573b46965351"

      database:
        name: "wordpress"
        user: "wordpress"
        password: "wordpress"
        host: "localhost"

    staging:
      vhost: "http://example.com"
      wordpress_path: "/home/sakurauser/www/example.com"

      database:
        name: "database_name"
        user: "database_user"
        password: "database_pass"
        host: "database_host"
        charset: "utf8"

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

      ssh:
        host: "sakurauser.sakura.ne.jp"
        user: "sakurauser"
        password: "pass"
        port: 22
        rsync_options: "--verbose"
    ```

 

さくらのレンタルサーバーだと、データベースのdumpの文字コードがshift-jisになってしまう
ので、detabaseの項目に文字コードの指定を入れます。”utf-8″か”binary”にしておけば問題
なく動きます。

参考：[WordPress – wordmoveのMovefileのエラーを解決してみた – Qiita](http://qiita.com/hiro93n/items/7a23cac716db0a863203)

    ```decode:true
    $ vagrant ssh
    $ cd /vagrant
    $ wordmove pull --all
    ```

上記のコマンドを実行すればサーバーからローカルへデータを同期できます。ただし、一番
最初に実行するときはサーバーの公開鍵のチェックなどで上手くいかなかったので、vagrant
sshでログインした後に対象のサーバーにsshで入る必要があります。

    ```decode:true
    $ ssh sakurauser@sakurauser.sakura.ne.jp
    ```

これで、公開鍵を登録しますかとかうんたらかんたら聞かれるので、yesとしておけば大丈夫
です。

Movefileの設定等でなんとかなりそうな気はするんですけどね・・・。だれか教えてくだ
さい。

## hetemlでWordmoveする

hetemlの場合はsshは問題ないのですが、ファイルの同期をするrsyncが動かないので、FTP
で行います。

    ```decode:true
    local:
      vhost: "http://example.local"
      wordpress_path: "/var/www/vhosts/i-09798573b46965351"
      database:
        name: "wordpress"
        user: "wordpress"
        password: "wordpress"
        host: "localhost"

    staging:
      vhost: "http://example.com"
      wordpress_path: "/web/example.com"

      database:
        name: "database_name"
        user: "database_user"
        password: "database_pass"
        host: "database_host"

      exclude:
        - ".git/"
        - ".gitignore"
        - ".sass-cache/"
        - "bin/"
        - "node_modules/"
        - "tmp/*"
        - "Gemfile*"
        - "Movefile"
        - "wp-config.php"
        - "wp-content/*.sql"
        - ".htaccess"


      ftp:
        user: "ftp_user"
        password: "ftp_pass"
        host: "example.com"
        passive: true
    ```

wordpress_pathが実際のフルパスではなく、FTPでログインしたときのwordpressの場所に
なります。

こちらの場合は、sshを使わないので公開鍵云々などの必要はありません。すんなり動きます。
ただ、やりとりするファイルが多いと接続が切れたりする事があるようです。node_modules
等はexcludeに指定しておくと良いかと思います。

## 個人的にはまったとこ

いくらpullしてもデータベースが反映されないなぁってやってたら、テーブルのプレフィックス
を直してませんでした。ローカルでも本番環境でもこれは合わせておかないといけないよう
です。

## まとめ

最近WordPressのCLIツールもどんどん発達してますが、使いこなすと革命レベルで作業が
やりやすくなります。レボリューションです。

WordmoveとWP-CLIはほんとにすごい。セットアップせずに使える[VCCW](http://vccw.cc/)
ほんとすごい。
