以下の続きです。
VCCWを導入し、WordPress用のローカル環境ができたので、ローカル環境とサーバーをコマンドで同期できるようにします。
仮想環境からサーバへのSSH接続
SSH接続
SSHとは、他のコンピューターに安全に接続するための方法です。
Secure Shell(セキュアシェル、SSH)は、暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。パスワードなどの認証部分を含むすべてのネットワーク上の通信が暗号化される。
https://ja.wikipedia.org/wiki/Secure_Shell
インフラエンジニアじゃなくても押さえておきたいSSHの基礎知識
仮想環境からXSERVERへSSH接続できることで、双方のファイルのやり取りを簡単に行えるようになります。
SSH接続の設定
仮想環境で鍵を作成
コマンドプロンプトから以下のコマンドでvagrantを起動して、仮想環境に接続します。
vagrant up vagrant ssh
仮想環境に接続したら、以下のコマンドで鍵を作成し、また鍵のパーミッションを変更しておきます。
$ ssh-keygen $ chmod 700 ~/.ssh $ chmod 600 ~/.ssh/id_rsa
鍵をXSERVERに登録
仮想環境で、以下のコマンドにより作成した公開鍵の内容を表示します。
$ cd .ssh $ more id_rsa.pub
表示された公開鍵を、XSERVERのサーバーパネル内のSSH設定というところで、公開鍵として登録します。
接続の確認
下記のコマンドで、仮想環境からXSERVERへ接続してみます。
ssh サーバーID@サーバーID.xsrv.jp -p 10022
無事に接続できれば、仮想環境からXSERVERへSSH接続できるようになっています。
wordmoveでローカルとサーバーを同期する
movefile.yml
VCCWを導入したディレクトリにmovefile.ymlというファイルがあります。このファイルの中に、wordmoveの設定を書きます。
公式サイトの説明は、英語になりますが、下記です。そちらにも書いてありますが、YAMLではデータ構造を表すためにスペース2つを使います。
movefile.yml configurations explained
また、.ymlとはヤムルと呼ばれるファイル形式で、設定を保存する時などによく使われる形式です。
今回は、movefile.ymlに、下記のような設定を記述します。
global: sql_adapter: default local: vhost: "ローカルのホスト名" 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: "本番環境のホスト名" wordpress_path: "/home/サーバーID/ホスト名/public_html" # use an absolute path here database: name: "本番環境のDBの名前" user: "本番環境のDBのユーザー" password: "本番環境のDBのパスワード" host: "本番環境のDBのホスト名" port: "3306" # 3308から変更 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" - ".htaccess" # 追記 ssh: host: "本番環境のホスト名" user: "サーバーID" port: 10022 rsync_options: --verbose
wordmoveコマンドによる同期
movefile.ymlの記述が終わると、wordmoveというコマンドで、ローカルとサーバーの同期ができるようになっています。
以下は公式のコマンドの説明です。
まずは、下記のようにサーバーからローカルにpullしてみます。
$ cd /vagrant/ $ wordmove pull --all
逆に、ローカルのファイルをサーバーにpushuするのは下記のコマンドです。
$ cd /vagrant/ $ wordmove push --all
pull と push は、–all 以外に、色々なオプションをとることができます。例えば、オプションを -t にすることで、テーマのみが対象になります。
$ cd /vagrant/ $ wordmove push -t