contentよくいるエンジニアHomeVCCWVCCW(ver3.18.0)でWordPress構築~Wordmove編~2019年3月10日VCCWでローカルのWordPress環境を構築して、git管理するところまできました。ローカル環境で一人でWordPressを運用してもあまり意味がないので、次はWordmoveを利用してリモートサーバーにデプロイしたり、逆にリモートからローカルに同期したりしてみましょう!WordmoveとはVCCWはデフォルトでWordmoveというローカル環境とリモート環境を同期するツールがインストールされています。pullとすればリモート環境をローカルに同期することができます。このWordmoveを使用してデプロイしていきますが、諸々準備があるので進めていきます。秘密鍵をキーチェーンに登録して使用できる状態デプロイ先の以下の情報が確認できるDBの名前DBのユーザー名DBのパスワードDBのホストデプロイ先のドメインSSHホストSSHユーザー名リモートのWordPressを設置しているディレクトリ設定ファイルWordmoveはmovefile.ymlというローカルとリモートの環境を記述した設定ファイルを読み込みます。up実行時に自動で生成されるファイルで、デフォルトでは以下のようになっています。--verboseではそれぞれの項目を見ていきます。globalsql_adapterdefaultのままでOKですlocalvhostsite.ymlで設定したhostnameと同じ値を設定します。忘れた方はこちらをどうぞ。wordpress_pathWordPressの構成ファイルが設置されているディレクトリになります。変更していなければこれもデフォルトの”/var/www/html”で大丈夫です。databaseこれも特に変更していなければデフォルトのままでいけます。Databaseに記述した情報と合っているか確認しておきましょう。productionここが一番大切です。Productionとあるように、本番環境の諸々の情報を設定する箇所です。vhost本番環境のドメインを設定します。http(s)://hoge.com的な感じですね。wordpress_path本番環境でWordPressが設置されているディレクトリを指定します。WordPressの構成ファイルが格納されているファイルのディレクトリです。database本番環境のDBに接続するための諸々の情報になります。レンタルサーバーの方などはそれぞれのサービスの管理画面から確認できるかと思います。自前で環境構築された方は、ご自分で設定した情報を入力します。デフォルトですとportに”3308′′が設定されていますが、この設定を残すことでWordmoveの実行が失敗するケースが多いみたいです。MySQLの場合はデフォルトで解放されているポートは3306らしいので、もしMySQL環境でこのままの設定だと確かに落ちそうです。いうわけで、リモート側のDBが特別な設定をしていない限りはコメントアウトしてしまいます。最後にmysqldump_optionsですが、これはデフォルトでは”–max_allowed_packet=50MB”になっています。DB間でデータ通信する際の制限オプションのようなのですが、自分の場合はここでハマりました...自分はさくらのレンタルサーバー+MySQLという構成なのですが、MySQLの文字コード設定がutf8になっていないようで、以下のように変更する必要がありました。"--default-character-set=utf8"excludeこれはWordmoveで転送する対象から除外したいファイルを指定する部分です。本番環境とローカルでは.htaccessの設定が異なるため、デフォルトの設定に加えて”.htaccess”も追記しておきましょう。あと、もしローカル環境にphpMyAdminを導入している方はphpMyAdminが格納されているフォルダ名も追加しておきます。sshこれで設定ファイルは最後になります。Wordmoveはssh接続でリモートと通信を行うため、認証情報を記入していきます。今回は公開鍵認証ですでにリモートのサーバーにアクセスできる前提で進めいているので以下の記載だけで大丈夫ですhostssh接続先のホストです。さくらのレンタルサーバーであればFTPサーバという項目で確認できます。userssh接続時のユーザー名です。さくらのレンタルサーバーであればFTPアカウントという項目で確認できます。movefile.ymlの設定を確認Wordmoveにはmovefile.ymlに誤りがないか確認するための機能があるので、ここまできたら設定内容に問題ないかチェックしていきます。foundこんな感じでオールグリーンでしたら問題ないです!もしエラーが出ていたら指摘されている箇所が正しく記述できているか確認しましょう。リモートサーバーにデプロイここまできたらコマンドを一つ叩くだけでWordPress環境を丸っとリモートにデプロイしたり、ローカルに落としてきたりできます。–allは、ローカル環境のWordPressを丸ごとリモートにデプロイして上書きする処理になります。–all以外にもオプションは用意されているので、テーマだけとかデータだけとかも指定できます。詳しくはドキュメントを読んでみてください。pushを実行した後、特にエラーが出ずに完了したらリモートにWordPressが反映されているか確認してみましょう!WordPressのインストール画面が表示される...いざデプロイ先のページを開いてみたら、自分の場合はこんな画面が表示されました。原因は分かっていないのですが、productionのvhostにさくらの初期ドメインを設定していたのが怪しいと思ってます。自分の場合はさくらのレンタルサーバーを登録した直後にWordmoveでデプロイをしていたのですが、さくらが初期に用意してくれるホームページURLのドメインが開通するまで時間差があるらしく、そこらへんの切り替えのタイミングでデプロイしていたことが良くなかったのかなと...ちなみに上記の画面でWordPressのインストールを続行しようとすると「すでにテーブルが存在しています」的なエラーで落ちてしまいました。–allをしたら無事表示されました。画像が表示されない...WordPressで構築したサイトが表示されていて、管理画面にも入れるのですがなぜか画像だけ404エラーになっていました。情報を集めたところ、WordPressでファイルをアップロードすると基本的にはwp-content/uploadsディレクトリに格納されるが、この設定をわざわざ指定しないと直せないようでした。いうわけで、サイトドメイン/wp-admin/options.phpにアクセスして以下の設定を反映します。これで再度リロードしたところ、無事画像も表示されました。(なんだか腑に落ちないですが...)おわりかなり駆け足でしたが、これでWordPressをローカルで開発してリモート環境にデプロイすることができるようになりました!また、本番環境をローカルに再現することも可能です。設定ファイルを書くのは少し大変かもですが、この環境を一度作ってしまえば後の運用はかなり楽になるかと思います。最後に、自分のmovefile.ymlをアップしておきます。%>"movefile.ymlの中身はデリケートな情報だらけなので間違っても公開してはいけないのですが、このように環境変数に置き換えておけばgit管理もできるようになります。ここらへんはまた後日の記事で触れます。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。