弊社では開発には主に Rails を使うのですが、いくつかのサイトでは WordPress を使っています(この kray.jp もそうです)。
先日その内の一つをアップデートしたのですが、今後のアップデートをし易くするために、運用手順を一新してみました。
今回はそれを紹介したいと思います。
before
以前はサイト全体を git リポジトリにコミットして、それを capistrano でデプロイする、という手順で運用を行っていました。
これには以下のような問題がありました。
- WordPress コア、プラグインのアップデートがしにくい
WordPress やプラグインのアップデート時に、データベースを更新する場合があるため、本番環境でも管理ページから更新する必要があります。
そのため、アップデート作業は各環境で行わなければならず、リポジトリ管理との相性がよくありません。
- デプロイにコマンドライン操作が必要
社内で運用しているサイトについては難しいことではないのですが、お客様の運用するサイトの場合、お客様自身に cap deploy
を実行してもらうか、ご連絡をいただいてこちらで実行するかのどちらかになります。
前者の場合、capistrano を実行するための環境を、お客様の手元に構築していただく必要があります。使い方についてもレクチャーが必要ですし、お客様の中で担当者が変わる際の引き継ぎもしづらくなってしまうかもしれません。
後者の場合、弊社の都合にも左右されてしまうので、お客様の希望するタイミングでの更新ができないことがままあります。
after
以上の問題を解決するために、次のような手順での運用に変更してみました。
リポジトリ管理下に置くのは自作のテーマ、プラグインのみとする
WordPress コアや、配布されているプラグインについてはバージョン管理しないようにしました。
なんということでしょう! これによって、各環境でいつでも WordPress コアやプラグインを個別にアップデートできるようになりました!
自作テーマの更新は WordPress の管理ページからアップロード
なんということでしょう! WordPress の管理機能を使ってのアップデートなので、コマンドライン操作をする必要がなくなりました!
ただし、テーマは上書きができないので、別途 Easy Theme and Plugin Upgrades というプラグインを導入しています。
これによって、新規インストールのフォームで上書きが選べるようになります。
上書きすると、元のバージョンがメディアの中にバックアップされるので、外部からアクセスできないように制限をかけなければならない点は注意が必要です。
ちなみに、git archive --format zip --prefix theme_name/ -o archive.zip master
とすると、そのままアップロードできるアーカイブが作成できます。
+α
開発環境を構築するためのスクリプトを用意したのですが、その際に、WP-CLI という WordPress をコマンドラインで操作するためのツールを見つけました。
これを活用すれば、もっと色々改善できるところがありそうです。
より良い運用方法は?
以前よりは格段に身軽になったのですが、まだまだ改善の余地はあると思っています。
「こうした方がいいんじゃないか?」「うちではこんな運用しているよ」等々ご意見いただけるとうれしいです。
このエントリーに対するコメント
日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)
- トラックバック
「いいね!」で応援よろしくお願いします!