ITサポート

KUSANAGI を使う方法

VPSでWordPressを運用するには、サーバー管理の知識、スキルが必要です。しかも、複数ドメインを使う(バーチャルホスト設定)などは、意外に面倒で難しいです。KUSANAGIを使えば、簡単に設定できます。

しかも、よく知られているように、KUSANAGIを使えば、WordPressを高速動作させられる環境(理論値1000倍)が手に入ります。

KUSANAGIの公式な情報は以下の通りです。以下のページも見るようにして下さい。

メモ: KUSANAGI を使うには、基礎的なUNIX系のコマンド操作を学んでおく必要があります。sshログイン、ディレクトリの移動、ファイル権限、ファイルの編集などを理解していれば、比較的簡単に使えます。

必要な知識

以下のような知識が必要です。

全体像

このドキュメントでは、以下を解説します。

などです。

KUSANAGI を準備する

KUSANAGI は、VPSやクラウドと呼ばれる 仮想環境 で動作します。したがって、KUSANAGIが使える VPSサーバー を探すことが必要です。レンタルサーバーはもちろん専用サーバーなどでは動作させられません。

KUSANAGI を快適に利用するには、メモリ4GB以上とされています。どのVPSを契約するとしても、メモリ4GB以上のプランを契約することで、表示速度をアップさせることができます。

KUSANAGI の仕組み

kusanagi コマンド

KUSANAGI は、独自の kusanagi コマンドで簡単に、Webサイト構築に必要な設定を行うことができます。通常であれば、様々な設定ファイルを編集する必要がありますが、kusanagi コマンドだけで、操作できます。

項目 通常 kusanagi
ドメイン設定 /etc/apache/conf.d/enable
/etc/apache/conf.d/available
/etc/php.ini/
/etc/nginx.conf/
各種ssl設定
certbotの設定 など多数
kusanagi provision コマンド
Webサーバーの切り替え serviceコマンド
各種設定ファイルの変更(複数)
kusanagi httpd
WordPressのインストール MySQLコマンド
あるいは、phpMyAdminのインストールと操作
kusanagi provisionコマンドで同時に作成

kusanagi コマンドは、面倒な設定を一度に行なってくれるものだと考えられます。しかも、セキュリティアップデートも頻繁に行われているので、サーバー運用を簡単にしてくれます。

kusanagi のユーザーについて

kusanagiは、基本的に以下の2つのユーザーで運用します。

kusanagi の構成について

KUSANAGIは、以下のような構成になっています。

kusanagiコマンドで簡単に、hhvm、php7, php-fpm を切り替えることができます。また、Apache か Nginx を選んで使うこともできます。

Nginx は、Apacheに代わる新しいWebサーバーです。高速動作が売りです。hhvmは、PHPの実行環境です。高速動作しますが、動作させるプログラムによっては、ハングアップしてしまう(ずっと動きっぱなし)があります。

メモ: toiee Lab では、hhvmではなく、 php-fpm を使っています。Restrict Content Pro (会員管理)プラグインを使うと、時々 hhvm がハングアップすることがありました。そこで、安全に php-fpm を使うことでハングアップがなくなりました。 それでも、十分に高速に動作しています。

初めて使う場合

公式のドキュメントを読めるようになることが大切です。以下の手順を行なった後、公式ドキュメントを見て読めるようになりましょう。

以下のように設定します。

1
KUSANAGI の OSイメージでVPSを用意する
レンタルサーバーのマニュアルなどを参考にすると良いでしょう。基本的に選択肢から選んで、設定するだけです。
2
OSを最新にする(kusanagiも)
OSイメージが古いことがあります。そこで最新の状態にアップしてから、KUSANAGIの設定を行います。 yum updateコマンドで最新にアップデートします。
3
kusanagi の初期設定
kusanagi initコマンドを使って初期設定を行います。項目は以下の通りです。

ここで設定する kusanagi ユーザーのパスワードは、FTP接続などで使います。忘れないようにしてください。また、MySQL のパスワードも、重要なパスワードです。データベースを操作するために使います。忘れないようにしてください。

注意、重要: 以上の作業は、KUSANAGI を初めて使うときに、1度だけ行います。以上の作業を行なっていない場合は、以下の作業はできません。

新しいWordPressを設置する

仕組み

kusanagiコマンドを使うと、以下の設定を行なってくれます。

データベースは「1WordPressに対して、1データベース」です。また「1データベースに対して、1ユーザーを新規作成」して登録する仕様になっています。

サブドメイン、ルートドメインで設置はできますが、フォルダにインストーするすることはできません。また主導でフォルダを作って、そこにWordPressを置いても、動作しません(Apacheならするかも)。

KUSANAGIを使う場合は、メインドメインかサブドメインで運用してください。

手順

1
KUSANAGI OSを最新にする
作業開始の前に、KUSANAGIをアップデートしておくと良いでしょう。
2
DNSを設定する
SSLを設定するためには、先にDNS設定が終了していることが必要です。Let’s encrypt を使いたいならDNSの設定を終了させておきましょう。
3
kusanagi provision コマンド 新しくWordPressをインストールする場合は、 kusanagi provision 任意の名前 コマンドを使います。名前の部分は、わかりやすいルールを作ると良いです。例えば、 htdocs_設置ドメイン とします。toiee.jp なら、 htdocs_toiee.jp となり、何のためのディレクトリか一目でわかります。
4
必要な設定を進める 必要な設定を進めます。その中で現れるMySQLのユーザー名、データベース名、パスワードなどは保管してください。
5
Webサイトにアクセスする Webサイトにアクセスします。すると、インストール画面が開きますので、先ほど設定したデータベース名などを入力し、インストールを完了します。
6
初期のセキュリティ設定を行う WordPressのダッシュボードに表示されているセキュリティ情報を参考に、適切な設定を行います。

KUSANAGI に既存のサイトを移動する

KUSANAGIに既存のサイトを移動させる場合は、以下のような手順を行います。

  1. kusanagi コマンドで新しいサイト用に場所を作る
  2. 現在のサイトのデータをエクスポートする
  3. 1で作成した場所に、データをインポートする

手順

1
kusanagi provision コマンドでWordPressを準備します。
2
既存サイトのデータベースをエクスポートします。phpMyAdminが使えるなら、以下のようにできます
  1. データベース一覧から、データベースを選ぶ
  2. データベースの「エクスポート」タブを開く
  3. Export Method で詳細を開く
  4. 出力でファイルを選ぶ
  5. DROP TABELE / VIEW / PROCEDURE / FUNCTION… にチェックを入れる
  6. Export する

3
kusanagi サーバーにアクセスして、先ほどエクスポートしたファイルをインポートします。以下のようなコマンドになるでしょう。
$ mysql -u ユーザー名 -p データベース名 < エクスポートファイル名
4
既存サイトのwp-contents フォルダ以下を移動させます。念のために、kusanagiの wp-contents をバックアップしておくと良いでしょう。
5
以下のような小納戸で権限設定を行います。
$ find ./ -type f -exec chmod 644 {} \; $ find ./ -type d -exec chmod 755 {} \;
6
ドメインが代わる場合は、以下のような wp-cli を使ってドメイン名の変更を行います。
wp search-replace 'old url' 'new url'

よく使うコマンド

アップデート

OS自体をアップデートするコマンドは以下の通りです(時々実行しましょう)。


WordPressのKUSANAGIプラグインをアップデートするコマンドは以下です。KUSANAGIの新しいバージョンが出たら実行するようにしてください。なお、プロファイル名は「フォルダ名」です。


その他

KUSANAGIが遅い、応答が返ってこない場合

KUSANAGIの高速化の仕組みと相性が悪いWordPressプラグインを使うと、動作が遅くなったり、応答が返ってこないことがあります。toiee Lab の場合、Restrict Content Proプラグインと hhvm の相性が悪かったようです。

そこで、hhvm ではなく、 fast-cgi の php7 を利用するように変更しました。すると、全く問題なく動作するようになりました。