WordPress

KUSANAGI for Conoha で WordPressサイトを開設する方法

ConohaのVPSクラウドを契約して、KUSANAGI for Conohaをインストールする手順や、WordPressサイトを開設する方法をまとめました。

KUSANAGI for Conoha VPS に移行した背景

Miningooは、IDCFクラウドというIaaS型のクラウドサービスを利用してメディア運営をしていたのですが、12/11(火)に突然、IDCFクラウドから個人向けの会員は2019年3月31日からサービス提供を終了するとのメールが届きました。個人向けのtoCサービスではなく、今後はビジネス会員向けのtoBサービスに力を入れるとのこと。

IDCFクラウドでは複数のWordPressサイトを複数インスタンスで管理していたので、もはや保守不能な状態でもあったので、この機会に1つのVPSに集約することにしました。

Conoha VPS のアカウント作成

下記項目を入力していく

  1. メールアドレス登録
  2. SMS認証
  3. 氏名・住所の入力
  4. クレジットカードの登録

VPSサーバーの構築

  • リージョンの選択
    • 東京リージョン
  • サービスの選択
    • VPS
    • 1GBプラン(草薙の推奨メモリは4GB以上)
  • イメージタイプ
    • アプリケーションタブをクリック
    • WordPress(KUSANAGI)を選択
  • オプション設定
    • 自動バックアップ
    • 月額300円かかる
    • 追加ディスク
    • 接続許可ポート IPv4
    • 指定ポートのみを許可
    • SSH(22)とWeb(20/21/80/443)
    • 接続許可ポート IPv6
    • 指定ポートのみを許可
    • SSH(22)とWeb(20/21/80/443)
    • SSH Key
    • キーを生成してダウンロード
    • スタートアップスクリプト
    • 使用しないでOK

SSHでアクセス

  • 作成が完了するとサーバーの一覧画面に遷移するので、作成したサーバーのタグをクリックする
  • サーバーの詳細画面に、作成したサーバーのIPアドレスが記載されているのでメモ
  • サーバーの構築で作成した SSH Key でサーバーにアクセスしてみる
chmod 600 ダウンロードしたSSH Key
ssh -i ~/.ssh/key-conoha-kusanagi.pem root@XXX.XXX.XXX.XXX

KUSANAGI の初期設定

https://kusanagi.tokyo/document/kusanagi-init/
を参考に設定していく

1. 初期設定の前準備

# アップデート
yum --enablerepo=remi,remi-php56 update -y

# 完了したら再起動
reboot

2. KUSANAGI の初期化

kusanagi init
  1. DHE鍵の生成
  2. タイムゾーン
    • Asia/Tokyo
  3. 言語
    • English
  4. キーボードレイアウト
    • 英語
  5. kusanagi ユーザーのパスワード設定
  6. SSH鍵認証のパスワード設定
  7. ミドルウェアの選択
    • Nginx
  8. アプリケーションサーバーの選択
    • PHP7
    • 昔は HHVM がデフォルトだったが、最近変わった模様
  9. Rubyのバージョン選択
    • Ruby2.4
  10. データベース
    • MariaDB

3. KUSANAGI のプロビジョニング

複数サイト移行する場合は、この手順3以降を繰り返す

kusanagi provision --WordPress プロファイル名
  1. WordPressの言語選択
  2. ホスト名(FQDN)の入力
  3. Let's Encryptで使用するメールアドレス
  4. データベース名
  5. データベースのユーザ名
  6. データベースのパスワード

参考) プロファイルを削除するには

※ データベース等すべて削除になるので注意が必要

kusanagi remove -y プロファイル名

4. プラグイン All-in-One WP Migration を使って引っ越し

※ 最新バージョンだとエラーが出てしまうので6.7.0を使用

  1. 引っ越し前のWordPressサイトでエクスポート
  2. KUSANAGIサーバーのアップロード許容サイズを上げる
  3. ローカルの etc/hosts を切り替える
    • ドメインにアクセスしたときに新サーバーのIPアドレスを見に行くように修正
    • XXX.XXX.XXX.XXX hogehoge.com
  4. 引越し後のWordPressサイトでインポート(プラグインをインストールして有効化する必要あり)
  5. テーマを移行できなかったので手動でアップロード

参考) https://lunalunadesign.net/2019/09/71/

PHPのアップロード許容サイズをあげる方法

etc/php7.d/php.ini の下記箇所を修正する

post_max_size = 〇〇M
upload_max_filesize = 〇〇M

修正した後は、kusanagiコマンドを叩いて設定ファイルを反映させる

kusanagi php7

ページのレンダリングがストップしてしまう

記事ページのレンダリングが途中で止まってしまう事象が発生
PHPにもエラーが出ず、JSにエラーが出てるも原因がつかめず
レンダリングが止まっている箇所を探すために、記事の内容を削ってどこまでなら正しくレンダリングできるか調査
その結果、Crayon Syntax Highlighterのプラグインがどうやら悪さをしていることが判明
入れ直しても動かなかったので削除することに(TODO あとでハイライト系のプラグインを探す)

2020年6月13日追記)プラグイン All-in-One WP Migration が使えない場合

→ nginx 側の client_max_body_size が 16M だったのが原因と判明

  • WordPress本家のエクスポート機能を利用
  • その場合、テーマとプラグインを引き継げない

5. セキュリティ対応

KusanagiがインストールされているWordPressの管理画面は、下の画像のようにセキュリティに関して警告してくれる
警告の指示に従って、セキュリティ対応をしていく

wp-config.php の安全性を高める

wp-config.phpはWordPressをインストールする際に、ドキュメントルート直下に生成される
外部からURLで直接ファイルにアクセスできなくするため、wp-config.phpをドキュメントルートの上の階層へ移動する
wp-config.phpのオーナーを変更し、パーミッションを可能な限り制限的な値を設定する

mv wp-config ../
cd ..
chown kusanagi.www wp-config.php
chmod 0440 wp-config.php

ディレクトリのパーミッションを適切に設定する

chmod 0755 wp-content

wp-contentフォルダの所有者を kusanagi:kusanagi に変える

chown -R kusanagi:kusanagi wp-content

wp-content/cacheの権限を変える

chmod -R 777 wp-content/cache

FTP認証の都度認証をやめる(セキュリティは弱くなるので注意)

上記 wp-config.php の安全性を高めるを実施後、wp-config.phpを修正する

define('FTP_HOST', 'localhost');
define('FTP_USER', 'kusanagi');
define('FTP_PASS', 'hogehogehoge');
....

6. 契約しているドメインのDNSを変更

お名前.com とかのコンソールにて、新サーバーのIPアドレスを設定する
手順4で設定した /etc/hosts の設定をもとに戻すこと

7. sslの設定

自動更新はデフォルトでON

kusanagi ssl --email john@example.com プロビジョン名
kusanagi ssl --https redirect プロビジョン名

-WordPress