LoginSignup
1
4

More than 3 years have passed since last update.

VCCWでWordPressの完全お引越し

Last updated at Posted at 2018-08-13

経緯

勤め先の環境が lolipop でホストしてあり、それをどこか高速化したサイトに引っ越す必要が出てきました。googleのランキングアルゴリズムが遅いサイトの掲載順位を引き下げるアップデートがあったためです。

引越し先と引越し先での設定の選定

まず引っ越しにあたり、環境を選定しました。
amimoto というサービスが有名です。とても高速化された、wordpress専用のAMIを提供している会社です。その会社は、

  • AMIのみ
  • cloudfromation
  • ホスティングサービス

を提供しています。なんだかんだで、自分で面倒を見るよりも、ホスティングサービスにまかせてしまったほうが良いと考えました。

ホスティングサービスの課金体系が、AmimotoのCDNの転送量なので、画像ファイルやjsなどの外部リソースを自前のサブドメインから配信して、転送量を節約することで、最も下のプランで毎月10万アクセスを捌くことにしました。

Amimotoが標準でwordpressにインストールしてあるS3に画像などをアップロードするプラグインは、自前のCDNからの配信が出来ませんし、そのプラグインのサポートは行われていませんので、WP Offload S3
これの有料プランを購入しました。

引っ越し準備

プラグインのテスト

lolipop で全くコピーした環境を用意して、WP Offload S3を導入しました。

WordPressとプラグインのアップデート

怖くてやっていなかったアップデートを行いました。

いらないプラグインの削除

全てのプラグインのバックアップを取った上で、
amimoto 公式 非推奨プラグインリストを参考にしながら、いらないプラグインを削除しました。

特に、 "yoast seo" "all in one seo"が競合して不具合を起こしていたので、一方のみを使用するようにしました。

ローカル環境構築

VCCWによるローカル環境の構築を行いました。

まずvccwをクローンします。
フォークしてからクローンしていなければ、この状態でgitにリポジトリを作ります。

WordMove 設定方法 本番環境をローカルにpullする

vccwをクローンしたら、wordmoveを実行し本番の初期設定から、pullして、ローカル環境が立ち上がるかを確かめます。

wordmove はvagrant の外からも実行出来ますが、 vagrant ssh して仮想マシンのドキュメントルートcd /var/www/html && wordmove push --all で実行します。

鍵ファイルの読み込み

鍵ファイルをダウンロードし、鍵ファイルを追加します。
vagrant ssh しません。
ssh-add -K ~/.ssh/id_rsa サーバーの鍵ファイルを落としてきて実行

[詳しいやり方}(https://firegoby.jp/archives/5694)

Movefile.ymlの設定

本番でmovefileを説明書のとおりに作成することは出来ません。

初期のvccw に movefile がない場合、
wp scaffold movefile をローカルマシンのドキュメントルートで実行して movefile を作ってください。
movefileを以下のディレクトリに置かないとvagrant ssh した時に見えませんので、以下のディレクトリに移動します。
```yaml:~/vccw/wordpress/Movefile.yml
local:
vhost: "https://hikkoshimoto.cloudfront.net"
wordpress_path: "/var/www/vhosts/test.com" # use an absolute path here

database:
name: "kaitorimakxas_com"
user: ""
password: ""
host: "localhost"
charset: "utf8"

exclude:
- ".git/"
- ".gitignore"
- ".sass-cache/"
- "bin/"
- "tmp/"
- "Gemfile
"
- "movefile.yml"
- "wp-config.php"
- "wp-content/*.sql"
- "local-config.php"
- "local-salt.php"

ssh:
host: 11.111.111.111
user: amimoto-user
port: 22
rsync_options: --verbose


こんな感じでlocal 部分に設定が出力されるので、

```yaml:~/vccw/Movefile.yml
global:
  sql_adapter: default

local:
  vhost: "http://vccw.test"
  wordpress_path: "/var/www/html/" # vagrant ssh したときのマシン内部からの wrodpress の絶対パスにしてください。

  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: "https://d1mgwkm030kzo7.cloudfront.net"
  wordpress_path: "/var/www/vhosts/test.com" # 絶対パスで入力する 環境ごとに違う

  database:
    name: "test_com"
    user: ""
    password: ""
    host: "localhost"
    charset: "utf8"

  exclude:
  - ".git/"
  - ".gitignore"
  - ".sass-cache/"
  - "bin/"
  - "tmp/*"
  - "Gemfile*"
  - "movefile.yml"
  - "wp-config.php"
  - "wp-content/*.sql"
  - "local-config.php"
  - "local-salt.php"

  ssh:
    host: 11.111.111.111
    user: amimoto-user
    port: 22
    rsync_options: --verbose

こんなかんじにproductionに置き換えます。
wordpress_path: は絶対パスで環境ごとに違うので気をつけて。

WordMove の使い方

vagrant ssh

wordmove pull --all

で本番から環境をコピーしてきます。

provision/defalt.ymlの設定

[完成コード]
本番に搭載されている pluginを ~/provision/default.ymlに追記します。

~/vccw/provision/default.yml
plugins:
  - amimoto-dashboard
  - c3-cloudfront-clear-cache
  - nephila-clavata
  - nginx-champuru
  - nginx-mobile-theme

足りないかもしれないけど、このようにやります。

有料プラグイン、有料テーマのインストール方法

~/vccw/provision/default.yml
plugins:
  - https://s3-ap-northeast-1.amazonaws.com/mw-wp-form-standard.zip

zipでネット上に固めておいておきます。themeも同じく出来ますけど、
テーマファイルだけ、別のgitリポジトリに置き、クローンしてきたほうがいいです。
環境とテーマファイルを別にしましょう。僕はそうしています。

言語および地域の変更

lang: ja
php_ini:
date.timezone: JST

ローカル環境の立ち上げ

cd ~/vccw/ && vagrant up

古い本番から、DBをコピーしてきて、 vagrant 内部MySqlにぶち込みます。
SSHでトンネル接続して、localhostで立っている MySqlに接続しましょう。

wp-content/uploads の中身もコピーします。

vagrant halt してもう一回 vagrant up すると、ローカル環境が完全に立ち上がっているはずです。うまくいかない場合は vagrant provision それでも無理なら、 vagrant destroy してください。

本番へのプッシュ

新しい本番のDBへ古い本番をコピーします。
DBがコピーできたら、
wordmove push -w
でテーマファイル プラグイン upload フォルダなど movefile excludeに設定されていないファイルを同期させます。

継続運用

wordmove push -t
でテーマだけを追加する場合が多いと思います。

番外編

WP Form plugin の有効化

クッキーの設定を変更してくれるようにサポートに頼みます。

このURLをサポートに伝えると、2時間ほどで作業をしてもらえます。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4