VCCWでワードプレスの開発環境を作って一瞬でWordMoveを使って本番環境にアップロード(FTP編)【WordPress開発環境】
今日はVirtualBox、Vagrant、VCCWで作ったローカルワードプレスを本番ワードプレスにコマンド1つでアップロードしてしまいます。と言うかアップロードもできるし本番をローカルにコピーすることもできます。すばらしい…ちなみに、前回の環境開発の記事はこちらから。
目次
WordMove
こちらWordMove自体はVCCWとは別でこれ単体でも使うことができるのですが、Local by Flyweelで使ってみたのですがエラーだったので諦めてVCCWで使ってます。
VCCWのWordMove
ここにあります。最初の、vagrant upした後に現れます。
Movefile.yml
global:
sql_adapter: default
local:
vhost: "vccw.lo"
wordpress_path: "rootからワードプレスのパス"
# デフォルトでは"/var/www/html"ですが、変更必須
# VCCW /vagrant/wordpress の場合が多い
#ここは自動で作成されるため変更必要無し
database:
name: "wordpress"
user: "wordpress"
password: "wordpress"
host: "localhost"
charset: "utf8"
production:
vhost: "本番環境のドメイン"
wordpress_path: "Wordpressディレクトリへのパス"
# パスを書くパターンとしてわかる範囲で2つあるので、下記で説明してます
database:
name: "データベース名"
user: "ユーザー名"
password: "パスワード"
host: "ホスト"
# ここも消して問題なし
port: "3308" # サーバーの内容に合わせる
# ftpの場合は入力不要
mysqldump_options: "--max_allowed_packet=50MB" # SSHでのみ有効
exclude:
- ".git/"
- ".gitignore"
- ".sass-cache/"
- "bin/"
- "tmp/*"
- "Gemfile*"
- "movefile.yml"
- "wp-config.php"
- "wp-content/*.sql"
# npmでgulpとか使ってるならnode module消したほうがいいかも
- "node_modules/"
# 今回はsshじゃなくてftpなのでコメントアウトしてください
# ssh:
# host: "SSHホスト"
# user: "ユーザー名"
# port: 22 # オプショナル
# rsync_options: "--verbose" # オプショナル
# 代わりにftp
ftp:
user: "ユーザー名"
password: "パスワード"
host: "ホストIP番号0.99.1とかそういうの"
passive: true
scheme: "ftp"
ローカルのwordpress_path調べ方
global:
sql_adapter: default
local:
vhost: "vccw.lo"
wordpress_path: "rootからワードプレスのパス"
# デフォルトでは"/var/www/html"ですが、変更必須
cd ./test
cdでvccwで作ったディレクトリに行く。
vagrant ssh
sudo su -
vagrant sshで接続して、ルート権限になります。
root@test:~ ls
bin etc lib media proc sbin sys vagrant
boot home lib64 mnt root snap tmp var
dev initrd.img.old lost+found opt run srv usr vmlinuz.old
lsすると上記のようなファイルたちが出てきます。
root@test:~ cd /vagrant
#vagrantにcd
root@test:/vagrant
#lsをすると下記のファイルが出てきます
root@test:/vagrant ls
ansible.cfg Movefile.yml README.md Vagrantfile wp-cli
LICENSE provision site.yml wordpress wp-cli.yml
root@test:/vagrant/ cd /wordpress
#wordpressにcd
root@test:/vagrant/wordpress
#ここでpwd
root@test:/vagrant/wordpress pwd
/vagrant/wordpress
cdでvagrantに入ってlsをするとwordpressがあります。さらにこれにcdしてwordpressに入ってここでpwdします。すると/vagrant/wordpress と出てきますがこれがローカルの wordpress_path に書き込むべきパスになります。VCCWだと大体これです。
FTPに対応させる
LFTPをダウンロード
root@test:/vagrant/wordpress exit
パスを取得した後、一旦ルートから外れます。
sudo su -
再度、ルート権限になります。
root@test:~ apt-get install -y lftp
#その後に一応バージョンチェック
lftp -v
.lftprcを作成する
#rootになったばかりの状態で
root@test:~ pwd
/root
root@test:~ cd ../
#rootの上階層に行く
root@test:/ ls
bin etc lib media proc sbin sys vagrant
boot home lib64 mnt root snap tmp var
dev initrd.img.old lost+found opt run srv usr vmlinuz.old
#cdで home/vagrant/ へ移動
root@test:/ cd /home/vagrant/
#そこでlftprcをviで作成する
root@test:/home/vagrant vi .lftprc
sshでつないで、ルート権限にしたあとcdで上層階に行き再びcdで /home/vagrant/ へ行く。
Vimでlftprc作成
エディターが開くので下記のコードをコピペ。
set ftp:ssl-auth TLS
set ftp:ssl-force true
set ftp:ssl-allow yes
set ftp:ssl-protect-list yes
set ftp:ssl-protect-data yes
set ftp:ssl-protect-fxp yes
set ssl:verify-certificate no
esc => :(コロン) => w => q をタイプしてエンターを押して保存する。
ls -al
ls -alをするとカレントディレクトリの隠れファイルのリストを見ることができるので存在を確認する。
Production vhostのパスの書き方
なかなかこの書き方にも癖があり成功するのにめちゃくちゃ時間かかりました。
production:
vhost: "http://sample.com/wpfile"
wordpress_path: "/public_html/wpfile"
# サーバーの直下にpublic_htmlがある場合の書き方
# vhost: "http://sample.com/wpfile"
# wordpress_path: "/public_html/wpfile"
# ドメインの設定などの関係でドメインの直下にワードプレスファイルがある場合
# vhost: "http://test.com/wpfile"
# wordpress_path: "/wpfile"
ワードプレスが位置するディレクトリが、
http://sample.com/public_html/wpディレクトリ名
の場合は “/public_html/sample” と記載。
ドメイン設定などをしておりpublic_htmlが無く直下で
http://sample.com/そのディレクトリ
の場合は “/wpディレクトリ名 “だけを記載する。
しかし、なぜかvhost側にも同じ用に絶対パスを記載しないとエラーになるため上記のような形になる。ただその場合はpublic_htmlの記載はしない。
Production Databaseの書き方
database:
name: "データベース名"
user: "ユーザー名"
password: "パスワード"
host: "ホスト"
これは簡単ですが、vccwの中のワードプレスディレクトリ内のwp-config.phpを開いてデータベース情報をコピペしてください。
Production ftpの書き方
ftp:
user: "ユーザー名"
password: "パスワード"
host: "ホストIP番号0.99.1とかそういうの"
passive: true
scheme: "ftp"
最後にftpの書き方ですが、こちらもシンプルにいつもfptアプリでやってるようにftpのuser名とパスワードを入力して、hostに関してはレンタルサーバーで見れるホストID的なやつを入力してください。passiveはftpを有効にするということなので忘れずに。
Wordmoveを使い倒す
とりあえず今ターミナル開きっぱなしだったらexitする、もしくは閉じて再度開いてください。
そして先程の仮想環境があるディレクトリに移動。今回だと下の
cd /test
vagrant ssh
cd /vagrant
ここからwordmoveが使えます。pullと言って本番環境で出来てる物をローカルに反映させることもできますが、主にpushを使うことが多いだろうと想定して今回はpushをリストにしてます。pullを使う時は誰かにデータ入力させてそれを本番環境からローカルに引き取る時にwordmove pull -d とかすると便利そうです。
すべてpushする
wordmove push --all
ワードプレス一式をpush
wordmove push -w
テーマをpush
wordmove push -t
データベースをpush
wordmove push -d
メディアをpush
wordmove push -u
データベース関連のエラーたち
いろいろ多いですが、データベースだけ反映されないエラーがめちゃくちゃ多いです。
.htaccess
とりあえずアップする時に、本番環境側の.htaccessをバックアップして消しておいてください。なにかしらエラーを起こします。
$table_prefix
wp-config.phpの$table_prefixがローカルと本番で違うと更新されないので同じprefixにする。デフォルトですが下のような感じに。
$table_prefix = 'wp_';
JSONのエラー、もしくはデータベースを上書きできない
反映されない、ページをクリックしても表示されない、もしくは投稿しようとしたらThe response is not a valid JSON responseなどエディターで予期しないエラーが発生しましたがとかいろいろ怒られる場合、とりあえずpushされる側のデータベースをリセットしてみましょう。
リセットプラグイン
ではでは、ワードプレス開発ライフをお楽しみに。
SeeYaaaa!!!