NTT VPS Indigo に KUSANAGI RoDをインストール

KUSANAGI とは WordPress 用に チューニングされた実行環境です。

通常 KUSANAGI を利用するには、ConoHa や さくら といった専用のVPSを利用する必要があります。

しかし、実はKUSANAGI を開発している プライム・ストラテジーが配布している KUSANAGI Runs on Docker を使うことで他のVPSや自宅のPCでもインストールすることが可能です。Virtualbox を利用した Vagrant (ベイグラント)版もあります。

KUSANAGI を使うには値段が高そうなイメージがありますよね。でも実は誰でも使えるんですよ。

今回は、NTTPC の格安VPS Indigo (インディゴ)を使って KUSANAGI Runs on Docker をインストールしてみます。Indigo の登録方法などは下記の記事で紹介していますので先にご覧ください。

あまり初心者向けの内容ではないですが、基本的にコピペでOKです。

目次

Indigo VPS インスタンスを起動

インスタンスとは?

仮想マシンのこと。Indigo では 1契約で10個までインスタンスを作成可能。SSHとは?サーバーなどを遠隔操作する方法で、暗号化されているので安全に通信できる。コマンド操作が必要。

SSHとは?

サーバーなどを遠隔操作する方法で、暗号化されているので安全に通信できる。コマンド操作が必要。

Indigo に登録して、インスタンスを作成したら起動して、SSHクライアントを使いSSH接続しましょう。なお インスタンスのOSは Ubuntu 、CentOS どちらでもOKです。

Windows なら Tera Termrlogin、MacならiTerm2 を使うとよいです。この記事では Termius を使っています。

SSH通信には秘密鍵が必要となるので、Indigo のコントロールパネルで作成したSSH秘密鍵をSSHクライアントで指定する必要があります。

  • IPアドレス:コントロールパネルで確認
  • ポート番号:22
  • ユーザー名:ubuntu / centos
  • パスワード:なし
  • 秘密鍵:private_key.txt (作成したもの)

IPアドレスはここに記載

IPアドレス

初期設定

ログイン後

まずはこのような画面が表示されます。

以下のコマンドで root ユーザーのパスワードを設定します。

$ sudo passwd root
root のパスワードを作成
パスワードをもう一度入力
$ su
$ sudo passwd root
root のパスワードを作成

次にソフトのアップデートを行います。ここだけUbuntuとCentOSのコマンドが異なります。

Ubuntu の場合

# apt update
# apt list --upgradable
# apt -y upgrade

CentOSの場合

# yum -y update

KUSANAGI の下準備

ここからはカゴヤの KUSANAGI Runs on Docker を使ってみた を参考にしています。利用しやすいよう変更を加えている点もありますのでご留意ください。

先にやっておくこと
  • ドメイン、サブドメインのAレコードを Indigo のインスタンスのIPアドレスに向ける

複数のKUSANAGIサイトを作るには独自ドメインが必須です。まだの場合は.work や.xyz が取得費、維持費が安くてお得です。

お名前.comムームードメインなどドメインを登録しているサイトのコントロールパネルでAレコードを編集しましょう。ここではCloudFlareを使っていますがやっていることは同じです。サブドメインも利用可能です。

CloudFlare

コマンドをひたすら入力

ここからはひたすらコピペしましょう。

## スワップファイル
dd if=/dev/zero of=/swapfile bs=1M count=1024
## パーミッション変更
chmod 600 /swapfile
## swap 作成
mkswap /swapfile
## swapを有効に
swapon /swapfile
## swapを自動マウント
sed -i '$ a /swapfile swap swap defaults 0 0' /etc/fstab 

Docker をインストール

## Docker インストール
curl -fsSL https://get.docker.com/ | sh
## Docker 起動
systemctl start docker
## Docker 自動起動
systemctl enable docker
## Docker Compose インストール
curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
## パーミッション変更
chmod +x /usr/local/bin/docker-compose
## Docker ネットワーク作成
docker network create --driver bridge common_link

WordPress ディレクトリ

## WordPressディレクトリを作成 (ディレクトリ名は任意)
mkdir /home/wp
cd /home/wp
## nginxプロキシをインストール
mkdir nginx-proxy
wget https://support.kagoya.jp/cloud/docker/nginx-proxy/docker-compose.yml
## nginx 設定ファイルを作成
vi nginx.conf

vi を開いたら以下の内容をコピペして、:wq を入力で保存します。

client_max_body_size 64m;
Docker Composeを起動
/usr/local/bin/docker-compose  -f /home/wp/nginx-proxy/docker-compose.yml up -d

KUSANAGU サイトを作成

cd /home/wp
## 任意の名前のインストールディレクトリを作成
mkdir kusa01
cd kusa01
## docker-composeの設定ファイルをダウンロード
wget https://support.kagoya.jp/cloud/docker/kusanagi/docker-compose.yml
## 設定ファイルを編集
vi docker-compose.yml

{}で囲われた部分を自分の環境に合わせて変更しましょう。以下は例です。https://kusa.tabikumo.com でサイトを作った場合です。

vi の使い方がわからない場合はこちらを見てみましょう。

VIRTUAL_HOST: kusa.tabikumo.com
VIRTUAL_PROTO: https
LETSENCRYPT_HOST: kusa.tabikumo.com
LETSENCRYPT_EMAIL: [email protected]
LETSENCRYPT_TEST: "false"
PROFILE: kusa
FQDN: kusa.tabikumo.com

PROFILEはそのままディレクトリ名になります。

下の方で データベースの設定をします。任意のユーザー名、データベース名を設定します。

MYSQL_ROOT_PASSWORD: v6RwyZDi
MYSQL_USER: kusa_user
MYSQL_PASSWORD: Uc6rSHd2
MYSQL_DATABASE: kusadb
vi uploads.ini
file_uploads = On
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 600
Docker コンテナを起動
/usr/local/bin/docker-compose -f /home/wp/kusa01/docker-compose.yml up -d

あとは自動的に、サイト構築、Let’s Encrypt でSSL証明書を作成しますので10分程度待ってから https://kusa.tabikumo.com などサイトへアクセスしましょう。

インストール

この画面が出たらいつものようにWordPressをインストールできます。

先程設定したデータベース名、ユーザー名、パスワードを入力して、データベースのホスト名を「mysql」にします。

あとはサイト名や管理ユーザーを作成して完了です。

この画面が出てくると分かっていてもうれしいですね。

インストール後の調整

プラグイン・テーマを直接インストールできるようにする

vi /home/wp/kusa01/data/kusa/DocumentRoot/wp-config.php

最後の行に追加

define('FS_METHOD','direct');

各ディレクトリ、ファイルのパーミッションを変更

セキュリティ対策としてディレクトリとファイルの権限を変更します。ディレクトリのパスは自分の環境に合わせて変えてください。

まとめてコピペですべて実行されます。

chmod 707 /home/wp/kusa01/data/kusa/DocumentRoot/wp-content/themes/ &&
cd /home/wp/kusa01/data/kusa/DocumentRoot/ &&
chmod -R 707 wp-admin/ &&
chmod -R 707 wp-includes/ &&
chmod 707 license.txt &&
chmod 707 readme.html &&
chmod 707 wp-activate.php &&
chmod 707 wp-comments-post.php &&
chmod 707 wp-config-sample.php &&
chmod 707 wp-cron.php &&
chmod 707 wp-load.php &&
chmod 707 wp-login.php &&
chmod 707 wp-settings.php &&
chmod 707 wp-signup.php &&
chmod 707 wp-trackback.php

KUSANAGI RoDサイトの速度

NTT Indigo 測定環境
  • 1GB プラン
  • KUSANAGI Runs on Docker
モバイル
PC

PageSpeed Insights では当たり前のようにスコアが100です。

GTmetrix

GTmetrixでは測定サーバーが海外なのですが、このようになりました。

Docker上で起動していることを感じさせない十分な速度だと思います。

おまけ:ミラーサイトの作り方

現ブログを Indigo へ移行する場合のやり方です。

移行時に基本的に必要となるのは以下の4つのデータです。

  • MySQL データベース
  • 記事内の画像 (uploadsフォルダ)
  • プラグイン (pluginsフォルダ)
  • テーマ (themesフォルダ)

オリジナルのWordPress サイトのデータをコピーしておきます。

MySQLコマンドが使える場合は以下を実行、出力した .sqlファイルをSFTPでダウンロードします。

mysqldump -u root  -p データベース名 >export.sql

細かなやり方は、少し下の記事リンクをご覧ください。

SFTPクライアント(Filezilla,、Cyberduckなど)でダウンロードしておき、新サイト(Indigo)の同じディレクトリにコピーしておきましょう。データベースファイル(.sql)ファイルの置き場はDocumentRoot と同じディレクトリでOKです。

Docker コンテナに移動

## 起動しているDocker コンテナ表示
docker ps
9e8ec9fda980        mariadb:10.1.21                          "docker-entrypoint.s…"   40 minutes ago      Up 33 minutes       3306/tcp   

こんな表示がずらっと5つ並ぶので、3つめの mariadb のコンテナのIDをコピーしておきます。

## Docker コンテナ内で操作 (コンテナIDはコピーしたもの)
docker exec -i -t 9e8ec9fda980 /bin/bash
## KUSANAGI ディレクトリへ移動
cd /home/kusanagi/kusa
## mysqlデータベースをインポート (DBパスワードを入力)
mysql -u root -p DB名 < データベース.sql

Search Regex でURL置換

WordPressの管理画面に戻り、プラグイン Seach Regex を使って URLを置換してサイトのコピーが完了です。おつかれさまでした。

その他

ドメイン名が異なる場合は、データベースの wp_optionsを書き換える必要があります。

まとめ

格安VPS でも十分使えることが分かりました。Docker を利用しているので管理上複雑になるため初心者にはおすすめできませんが、KUSANAGIが提供されていないVPSでもりようできるのでサブサイトやバックアップサイトのような使い方にはよいのではないでしょうか。

こんなの面倒だし、少し高くても安心して使えるVPSがいい!という場合はこのサイトでも利用している ConoHa VPS がおすすめです。かんたんKUSANAGIがあるのでコマンドをほぼ使わず自動でKUSANAGIサイトが作れます。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

気になるガジェットやサービスをレビュー!日常生活のアップデートを目標に役に立つ情報を掲載していきます。

仕事のご依頼などはお問い合わせからどうぞ。

目次