WordPress

【2024年最新版】Local(旧Local by Flywheel)とwordmoveを使ってワードプレスを秒速で同期する【SSH編】

shu

どうもMacを数ヶ月前に初期化しちゃったsgwです。

いろいろ設定やり直してるので今回は本番サーバーとローカルを秒速で同期できるwordmoveの設定を秒速で解説します。

*2024年7月に早速問題

「Unknown command '\-'.」みたいなエラーで1ヶ月前くらいは出来てたのにできなくなってました。MariaDBに最近追加されたセキュリティ対策らしいです。

下記修正wordmoveを作ってくれた人がいたので便乗して使わせていただいてます。

詳しいやり方は下記で。

wordmoveとは

レッツチャットGPTw

Wordmoveとは、主にWordPressサイトの移行や同期を簡単に行うためのオープンソースのツールです。Wordmoveを使用すると、ローカル環境、ステージング環境、および本番環境間でのデータベースやファイルの同期が簡単にできます。これにより、サイトの開発、テスト、運用がスムーズに行えます。

ChatGPT

です。とりあえずコマンドラインでWPをアップロードを超簡単にできるってことです。

めっちゃ便利なんですけど、サーバーの環境とかデータベースによってエラー起きるし、いろいろ設定が厳しくて間違えると全然動かないので完全動作する環境を作っていきます。

Localはもちインスコしといて下さい。あとサーバー側がssh対応してないと無理です。

必要事項

動作確認が安定的できたバージョン

Ruby 2.6.0

wordmove 5.0.2

rbenvインストール

インストールしようとしたらだいたい下記のエラーで詰まるのでとりあえずrbenvを入れてrbenvのrubyをグローバル設定します。

You don't have write permissions for the /library/ruby/gems/2.6.0 directory

rbenvダウンロードでrubyのバージョン管理

brew update
brew install rbenv ruby-build

下記やって

rbenv versions
* system

と出てくるならrbenv側のrubyを使う必要があるのでインスコします。

現状自分の環境でwordmove動作が安定的に確認できたのは

Ruby 2.6.0

wordmove 5.0.2

なので上記をインスコするのがおすすめです。

下記で2.6.0をインストール。

rbenv install 2.6.0

下記で2.6.0をグローバルで使うrubyとして設定。

rbenv global 2.6.0

下記で現状ダウンロードしてるrubyのバージョン郡たちと設定してるrubyがどれか確認できます。

rbenv versions

使ってるバージョンに*がついてます。

rbenv versions  system
  2.6.0
  3.1.0
* 3.3.2 (set by /Users/name/.rbenv/version)

使ってるバージョンに*がついてます。

rbenv にパスを通す

移動>ホーム

Screenshot

コマンド+シフト+.

で隠しファイル表示

Screenshot

.zshrcというファイルを開いて1番下に

[[ -d ~/.rbenv  ]] && \
  export PATH=${HOME}/.rbenv/bin:${PATH} && \
  eval "$(rbenv init -)"

を書き込む。

ターミナル再起動して

which ruby

で下が出てきたら成功。

/Users/olein/.rbenv/shims/ruby

wordmoveインストール前に

Localをデフォルト設定すると

/Users/NAME/Local sites/wordpress-sample/app/public 

のようなとこにwpがインスコされちゃうのですがこれだとwordmoveでデータベースの同期ができませんでした。

なのでLocalアプリ開いて、左上の

Local > Settings > New site default

を開きます。

下記の部分がデフォルトだとLocal sitesとなってるのでLocals等スペースを伴わないディレクトリに設定します。

これでデータベースのエラーの対策完了です。

やっとwordmoveインストール

普段通りローカルでサイト作成した後に、作成サイト右クリック > Open site shell

ターミナルで下記コマンド走らせると

gem install wordmove

と下記ファイルが作成されます。

global:
  sql_adapter: wpcli

local:
  vhost: ローカルサイトのURL
  wordpress_path: /Users/name/Downloads # use an absolute path here

  database:
    name: database_name
    user: user
    password: "password" # could be blank, so always use quotes around
    host: 127.0.0.1

production:
  vhost: http://example.com
  wordpress_path: /var/www/your_site # use an absolute path here

  database:
    name: database_name
    user: user
    password: password
    host: host
    # port: 3308 # Use just in case you have exotic server config
    # mysqldump_options: '--max_allowed_packet=1G' # Only available if using SSH
    # mysql_options: '--protocol=TCP' # mysql command is used to import db

  exclude:
    - '.git/'
    - '.gitignore'
    - '.gitmodules'
    - '.env'
    - 'node_modules/'
    - 'bin/'
    - 'tmp/*'
    - 'Gemfile*'
    - 'Movefile'
    - 'movefile'
    - 'movefile.yml'
    - 'movefile.yaml'
    - 'wp-config.php'
    - 'wp-content/*.sql.gz'
    - '*.orig'

  # paths: # you can customize wordpress internal paths
  #   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

  # ssh:
  #   host: host
  #   user: user
  #   password: password # password is optional, will use public keys if available.
  #   port: 22 # Port is optional
  #   rsync_options: '--verbose --itemize-changes' # Additional rsync options, optional
  #   gateway: # Gateway is optional
  #     host: host
  #     user: user
  #     password: password # password is optional, will use public keys if available.

  # ftp:
  #   user: user
  #   password: password
  #   host: host
  #   passive: true
  #   port: 21 # Port is optional
  #   scheme: ftps # default `ftp`. alternative `sftp`

  # hooks: # Remote hooks won't work with FTP
  #   push:
  #     before:
  #       - command: 'echo "do something"'
  #         where: local
  #         raise: false # raise is true by default
  #     after:
  #       - command: 'echo "do something"'
  #         where: remote
  #   pull:
  #     before:
  #       - command: 'echo "do something"'
  #         where: local
  #         raise: false
  #     after:
  #       - command: 'echo "do something"'
  #         where: remote
  #
  # forbid:
  #   push:
  #     db: false
  #     plugins: false
  #     themes: false
  #     languages: false
  #     uploads: false
  #     mu-plugins: false
  #   pull:
  #     db: false
  #     plugins: false
  #     themes: false
  #     languages: false
  #     uploads: false
  #     mu-plugins: false

# staging: # multiple environments can be specified
#   [...]

下記部分をLocalのワードプレスパスに変更。

vhost: ローカルサイトURL
wordpress_path: wordpressのルートパス(/Users/ユーザー名/Locals(ここ注意)/test-sgwblog/app/public等)

production側も各自サイトに合わせて設定します。(次の記事でエックスサーバにつなぐ方法記載!乞うご期待w)

Unknown command '\-'問題

gem install specific_install

上記走らせると

Fetching specific_install-0.3.8.gem
Successfully installed specific_install-0.3.8
Parsing documentation for specific_install-0.3.8
Installing ri documentation for specific_install-0.3.8
Done installing documentation for specific_install after 0 seconds
1 gem installed

上記みたいなのが出てくるので終わるのを待ちます。

終わった後下記を走らせます。

gem specific_install https://github.com/murodon/wordmove_custom.git
Successfully installed

ってのが出てきたら成功です。

wordmove -v

上記で

5.2.2

と返ってくれば成功。

wordmoveコマンドまとめ

上記で開いたターミナルで下記コマンドを発動するとサーバー側のワードプレスのデータ、テーマ、メディアファイル等を簡単に同期できます。

wordmove pull

テストサーバーからローカルに落としてくるコマンドがpullです。

wordmove pull --all //wpコアファイルと、テーマ、メディア、データベース
wordmove pull -w //wpコアファイル
wordmove pull -d //データベース
wordmove pull -t //テーマ
wordmove pull -u //メディア

wordmove push

wordmove push --all //wpコアファイルと、テーマ、メディア、データベース
wordmove push -w //wpコアファイル
wordmove push -d //データベース
wordmove push -t //テーマ
wordmove push -u //メディア

他にもテストや本番サーバー等で指定可能だったり(プロファイルで選ぶみたいな)

push pull 間違えたら上書きしちゃうので注意w(おそらくこれもbackup的な機能ありそう)

いろいろ他にもできるので思い出して来たら追記していこうと思います。

それでは快適なワードプレス開発を!次回は僕が使ってる海外サーバーのHostingerやエックスサーバーで設定する方法を解説できたらと思います。

CYaaaaaaaaaaaa!!

過去記事でFTPでのやり方書いてます

Local(旧Local by flywheel)使うなら

あわせて読みたい
ワードプレスの開発環境を一瞬でLocal by Flywheelで作って、wordmoveで本番環境にアップロード(FTP編)【WordPress環境開発】
ワードプレスの開発環境を一瞬でLocal by Flywheelで作って、wordmoveで本番環境にアップロード(FTP編)【WordPress環境開発】

VCCWで環境作ってるなら

あわせて読みたい
VCCWでワードプレスの開発環境を作って一瞬でWordMoveを使って本番環境にアップロード(FTP編)【WordPress開発環境】
VCCWでワードプレスの開発環境を作って一瞬でWordMoveを使って本番環境にアップロード(FTP編)【WordPress開発環境】
ABOUT ME
sgw
sgw
フロントエンド
カナダのBCITとか言う短大卒業。その後4年ほどカナダでWEB制作系フロントエンドエンジニアとして働いて、今は東京で働いてるニキの雑記ブログ。カナダ留学、英語、WEB制作、ポイ活などなどを主に記事として書いてます。
記事URLをコピーしました