◆ はじめに
はじめまして、株式会社アーシタンの遠藤進悟と申します。
KUSANAGI静岡ユーザーグループの発起人だったり、KUSANAGIの簡易保守サービスを提供している会社の人だったりします。
今回は、縁あってコラムを書かせていただくことになりました。あまり難しいことを書くのは得意ではないので、KUSANAGIを使い始めた人に役に立つようなことを書いていけたらと思います。
◆ アップデートをする意味
WordPressやKUSANAGIはアップデートを行うことを前提として、セキュリティ対策がなされています。KUSANAGIを導入したから安全というわけではなく、KUSANAGIを導入してアップデートをきっちり行うから安全であると言えるわけです。
KUSANAGIはWordPressの最新版の推奨環境に設定することもできるため、適切にテーマやプラグインなどの選択・カスタマイズを行っていれば、WordPressのアップデートでの問題はほぼ起こらないように設計されています。
Webサイトが止まってしまうかもしれないからアップデートできないという運営者も多いのですが、改ざんや情報漏えいなどのインシデントが発生してしまい、Webサイトの閉鎖をする必要まで出てくるかもしれません。
そのようなリスクを負わないためにも、今回紹介する方法で、適切にアップデートを行っていくことで、安心してWordPressの運用を行っていくことができるのです。
◆ アップデートの範囲
この記事で行うアップデートの範囲は
- KUSANAGIのアップデート
- WordPressのアップデート
- WordPressプラグイン・テーマ・翻訳のアップデート
- KUSANAGIプラグインのアップデート
- SSL証明書(Let’sEncrypt)のアップデート
となります。
今回はすべてターミナル(黒い画面)にコマンドを入力することでのアップデート方法を紹介します。
◆# 0. 準備
まずはKUSANAGIをインストールした際に利用したSSH・コンソールにログインしましょう。
ここは利用サービスや設定によって環境が異なるため、公式ドキュメントのパブリッククラウドのページ(https://kusanagi.tokyo/cloud/)を参考にしてみてください。
準備ができたかどうか確かめるために下記のコマンドを入力し、実行してみましょう
kusanagi status
実行すると以下のように表示されます。
Profile: [プロファイル]
Type: WordPress
KUSANAGI Version 8.0.6-1
[VMイメージ名]
*** nginx ***
- nginx.service – The NGINX HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since 日 2017-04-09 02:31:17 JST; 1 day 6h ago
*** Apache2 ***
- httpd.service – The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
*** HHVM ***
- hhvm.service – HHVM virtual machine, runtime, and JIT for the PHP language
Loaded: loaded (/etc/systemd/system/hhvm.service; disabled; vendor preset: disabled)
Active: inactive (dead)
*** php-fpm ***
- php-fpm.service – The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
Active: inactive (dead)
*** php7-fpm ***
- php7-fpm.service – The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php7-fpm.service; enabled; vendor preset: disabled)
Active: active (running) since 日 2017-04-09 02:31:17 JST; 1 day 6h ago
*** Cache Status ***
fcache on
bcache off
完了しました。
以下のように表示された場合は、root権限になっていないので、先ほどのドキュメントページをもう一回読んでroot権限に昇格しましょう
-bash: /usr/bin/kusanagi: 許可がありません
◆# 1. KUSANAGIのアップデート
準備が済んだところで、KUSANAGIをアップデートしてみましょう。
下記のコマンドを実行することで、KUSANAGIやOSで利用されているほかのミドルウェアのアップデートができます。
yum -y update
場合によっては、数十分処理が続くこともあります。気長に待ちましょう。
これで、KUSANAGI本体のアップデートは完了です。
◆# 2. WordPressのアップデート
これはWordPressの管理画面からも行うことができますが、KUSANAGIの環境に同梱されているwp-cliというWordPressをコマンドで操作することができるツールを利用して、アップデートをしてみます。
まず、下記のコマンドを実行し、WordPressのDocumentRootに移動します。
cd /home/kusanagi/[アップデートしたいプロファイル]/DocumentRoot
※アップデートしたいプロファイルの部分は適宜変更してください。
アップデートの前にデータベースのバックアップをとっておきます。
以下のコマンドを実行することで、sql形式のデータベースのダンプファイルが作成されます。
wp db export
ファイルのバックアップもしておきましょう。
これはwp-cliではなく、Linuxで利用できるコマンドで必要な箇所のみ圧縮しておくことにします。
zip -R backup.zip ./*
※DocumentRootで実行すること
それでは、バックアップも済んだので、以下のコマンドを実行しアップデートを行います。
wp core update
これで、最新版のWordPressへのアップデートは完了です。
◆# 3. WordPressプラグイン・テーマ・翻訳のアップデート
これもWordPressの管理画面上から行うことが可能ですが、コマンドでアップデートを行います。
まずは、プラグインのアップデートをおこないます。
–all と指定することで、インストールされているすべてのプラグインが対象になります。
wp plugin update –all
次にテーマのアップデートを行います。
これも –all と指定することですべてのテーマが対象になります。
テーマに関しては、テーマの機能追加や構造変更によって表示崩れが起こる可能性もあるため、親子テーマの形でカスタマイズしてある場合は特に気をつけるようにしてください。
wp theme update –all
翻訳のアップデートも行います。日本語環境で利用している場合、翻訳ファイルのアップデートも行いましょう。
プラグインなどで独自の翻訳を行っている場合、翻訳内容が書き変わってしまう可能性もあるため、注意してください。
wp core language update
◆# 4. KUSANAGIプラグインのアップデート
一連のアップデートの中で忘れがちなのがこのKUSANAGIプラグインのアップデート。
KUSANAGIのプラグインはWordPressの管理画面にはアップデート通知がでないため気づきにくいですが、便利な機能追加やバグ対応もなされているので、しっかりアップデートしておきましょう。
kusanagi update plugin
wp-cli のアップデートコマンドと混同しがちなので注意。
◆# 5. SSL証明書(Let’sEncrypt)のアップデート
KUSANAGIではLet’sEncryptによるSSL証明書の取得が簡単に出来るようになっています。これを利用して全ページHTTPSに変更した方も多いのではないでしょうか。
設定上はデフォルトで自動更新になっているかと思いますが、Let’sEncryptを操作するコマンドのアップデートも行われているため、うまく動かないことがあるかもしれません。
そんな時のために手動での更新コマンドも覚えておきましょう。
kusanagi update cert
◆ まとめ
サーバやWordPressのセキュリティの話題が増えてきている昨今ですが、問題のほとんどはアップデートを行っていなかったことが原因になっています。
KUSANAGIやWordPressのアップデートを怠ることが危険であるという認識を持って、定期的にチェックをすることが大事です。
安全な環境を保つことができれば、安心してWebサイトの運営を行うことができコンテンツに注力することができるようになります。
知識のある人は今回のコマンドをシェルスクリプトにまとめて実行することもできるかと思いますので、試してみてください。