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 のアカウント作成
下記項目を入力していく
- メールアドレス登録
- SMS認証
- 氏名・住所の入力
- クレジットカードの登録
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
- DHE鍵の生成
- タイムゾーン
- Asia/Tokyo
- 言語
- English
- キーボードレイアウト
- 英語
- kusanagi ユーザーのパスワード設定
- SSH鍵認証のパスワード設定
- ミドルウェアの選択
- Nginx
- アプリケーションサーバーの選択
- PHP7
- 昔は HHVM がデフォルトだったが、最近変わった模様
- Rubyのバージョン選択
- Ruby2.4
- データベース
- MariaDB
3. KUSANAGI のプロビジョニング
複数サイト移行する場合は、この手順3以降を繰り返す
kusanagi provision --WordPress プロファイル名
- WordPressの言語選択
- ホスト名(FQDN)の入力
- Let's Encryptで使用するメールアドレス
- データベース名
- データベースのユーザ名
- データベースのパスワード
参考) プロファイルを削除するには
※ データベース等すべて削除になるので注意が必要
kusanagi remove -y プロファイル名
4. プラグイン All-in-One WP Migration を使って引っ越し
※ 最新バージョンだとエラーが出てしまうので6.7.0を使用
- 引っ越し前のWordPressサイトでエクスポート
- KUSANAGIサーバーのアップロード許容サイズを上げる
- ローカルの
etc/hosts
を切り替える- ドメインにアクセスしたときに新サーバーのIPアドレスを見に行くように修正
- XXX.XXX.XXX.XXX hogehoge.com
- 引越し後のWordPressサイトでインポート(プラグインをインストールして有効化する必要あり)
- テーマを移行できなかったので手動でアップロード
参考) 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 プロビジョン名