hysryt / wiki

https://hysryt.github.io/wiki/
0 stars 0 forks source link

Wordmove #38

Open hysryt opened 6 years ago

hysryt commented 6 years ago

ローカルのWordPressをリモートにデプロイする(その逆も可能) https://github.com/welaika/wordmove

hysryt commented 6 years ago

Install

$ gem install wordmove

まだRuby2.5に対応していないようなので2.4.3を使用する(2017.12.27時点) gemのインストールはこちらを参照

hysryt commented 6 years ago

movefile.yml

各種設定はmovefile.ymlに記述する wordmove initで雛形を作成できる

$ wordmove init

sql_adapter が default の場合

source_path = source_config[:wordpress_absolute_path] || source_config[:wordpress_path]
dest_path = dest_config[:wordpress_absolute_path] || dest_config[:wordpress_path]
replace_field!(source_path, dest_path)

sql_adapter が wpcli の場合、wordpress_absolute_path は無視して wordpress_path同士を置換する

なので絶対パスの置換を無効にする場合、sql_adapterdefault にし、localproductionwordpress_absolute_path を十分長いランダムな文字列にする


設定例

global:
  sql_adapter: default

local:
  vhost: http://192.168.0.30/wordpress
  wordpress_path: /Library/WebServer/Documents/wordpress

  database:
    name: データベース名(ローカル)
    user: ユーザ名(ローカル)
    password: パスワード(ローカル)
    host: ホスト名(ローカル)

production:
  vhost: http://xxx.com
  wordpress_path: /
  wordpress_absolute_path: /web/xxx  # サーバー上の絶対パス

  database:
    name: データベース名(リモート)
    user: ユーザ名(リモート)
    password: パスワード(リモート)
    host: ホスト名(リモート)

  exclude:
    - .git/
    - .gitignore
    - .sass-cache/
    - node_modules/
    - bin/
    - tmp/*
    - Gemfile*
    - Movefile
    - movefile
    - movefile.yml
    - movefile.yaml
    - wp-config.php
    - wp-content/*.sql.gz
    - .DS_Store
    - .htaccess
    - xxx/src/   # テーマのソースファイル

  ftp:
    user: FTPユーザ名
    password: FTPパスワード
    host: FTPホスト名
    passive: true
    scheme: ftp
hysryt commented 6 years ago

デプロイ

$ wordmove push --all

--allオプションでDBのデータとWordPress全てのファイルをデプロイできる。 二度目以降は差分がデプロイされる模様。

Options:
  -w, [--wordpress], [--no-wordpress]
  -u, [--uploads], [--no-uploads]
  -t, [--themes], [--no-themes]
  -p, [--plugins], [--no-plugins]
  -m, [--mu-plugins], [--no-mu-plugins]
  -l, [--languages], [--no-languages]
  -d, [--db], [--no-db]
  -v, [--verbose], [--no-verbose]
  -s, [--simulate], [--no-simulate]
  -e, [--environment=ENVIRONMENT]
  -c, [--config=CONFIG]
      [--debug], [--no-debug]
      [--no-adapt], [--no-no-adapt]
      [--all], [--no-all]

hysryt commented 5 years ago

home と siteurl が違う場合

movefile.yml の vhost に siteurl を設定する。 wp-config.php で home を設定する。

例:wpディレクトリに WordPress を設置する場合

# home : http://localhost
# site_url : http://localhost/wp

local:
  vhost: http://localhost/wp
  wordpress_path: /var/www/html/wp
hysryt commented 5 years ago

forbid

Wordmove 3.0 以降では production セクションに forbid セクションを追加できるようになった。 forbid セクションを設定することで pull や push アクションを禁止させることができる。

production:
  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

true で禁止、false で許可する。(つまり上の例では全て許可となる) デフォルト値が false なため、true にしたい項目だけ記述すれば良い。

true に設定した項目を pull または push しようとすると以下のように Warning が発生し、実行されない。

▬▬ Pushing Db ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
    ⚠️  warning | You tried to push db, but is forbidden by configuration. Skipping