移行にあたり新環境の作成を行いました。今回は新しく、IndigoVPSでKusanagiイメージ(CentOS Stream8)のインスタンスを作成しました。全体の流れは前回に示した通り以下です。
- 既存環境全体のバックアップ(サーバーまるごと)
- データベースのバックアップ
- 新環境の作成(Indigo VPS) ← 今回はここから
- Kusanagiの初期設定、プロビジョニング
- データベースのリストア
- その他の設定
新環境の作成
新環境の作成(Indigo VPS)は、KUSANAGI 9 for WebARENA Indigo | KUSANAGI 9を参考に行います。リンク先を見ながらその後のKusanagiの設定も続いて行います。
簡潔に言うと、インスタンスの作成、初期設定、プロビジョニングです。
No | 項目 | 内容 |
1 | インスタンスの作成 | SSH鍵の作成、インスタンスの作成(OSのインストール)、(必要に応じて)ファイアーウォールの設定、アップデート |
2 | 初期設定 | KUSANAGI仮想マシンにおけるLinuxやデータベースのユーザーパスワードの設定、変更を行います。 |
3 | プロビジョニング | KUSANAGIでWordPressなどを使用するためのプロファイルを作成します。これにより、Webサーバーのコンフィグや、ドキュメントルートなどがプロビジョニング(配置)されます。 |
※参考
kusanagi コマンドは root ユーザーか、もしくは www グループに所属しているユーザーで実行できます。(kusanagi ユーザーはデフォルトで www グループに所属しています)
KUSANAGI9 コマンド | KUSANAGI 9
kusanagi コマンドが使用できない場合、ユーザーが root ユーザーか、もしくは www グループに所属しているかご確認ください。
kusanagi コマンドのフルパスは /opt/local/bin/kusanagi です。
インスタンスの作成
SSH鍵は元々あったため、同じものを使用します。インスタンスのイメージはKUSANAGI(バージョンはCentOS Stream8)を選択し、インスタンスを作成するだけなので簡単です。
インスタンスを作成したら、SSHでサーバーへ接続し、以下のコマンドで、CentOSやKUSANAGIシステムのアップデートを行い、再起動します。
※ -iオプションでSSH鍵を指定してcontosユーザーでサーバー(IP:xxx.xxx.xxx.xxx)にログイン
# ssh -i "C:\.ssh\private_key2.txt" centos@xxx.xxx.xxx.xxx
※rootに昇格
$ sudo su -
※システムのアップグレード
# dnf upgrade -y
※再起動
# reboot
初期設定
初期設定では、タイムゾーンや使用言語、キーボードタイプの設定、ユーザーパスワードや鍵認証、
使用するWebサーバ(nginxかApache)の設定、アプリケーションサーバの設定(PHP7, PHP8, PHP5, HHVM)などを行います。
# kusanagi init --tz Asia/Tokyo --lang ja --keyboard ja --passwd "kusanagiユーザーのパスワード" --nophrase --dbrootpass "DBのパスワード" --nginx123 --php81 --mariadb10.6
オプション | 内容 | 設定 |
–tz | タイムゾーン | Asia/Tokyo |
–lang | 使用言語の選択 | ja(日本語ロケール(ja_JP.UTF-8)) |
–keyboard | キーボード | ja(日本語キーボード(jp106配列)を設定) |
–passwd | (kusanagi)ユーザパスワード | kusanagiユーザのパスワード |
–nophrase | 鍵認証の設定 | SSHユーザ鍵のパスフレーズとして空文字列 |
–dbrootpass | MySQL(MariaDB) rootパスワードの設定 | DBのパスワード |
–nginx123 | nginxのバージョン | nginx1.23 |
–php81 | phpのバージョン | php8.1 |
–mariadb10.6 | MariaDBのバージョン | MariaDB10.6 |
プロビジョニング
利用するアプリケーションの選択、ホスト名の設定、SSL証明書の設定、データベースの設定で、
KUSANAGIでWordPress などを使用するためのプロファイル作成になります。
これにより、Webサーバの設定ファイル、MySQLのデータベースや、ドキュメントルートなどがプロビジョニング(配置)されます。
# kusanagi provision --wp --wplang ja --fqdn "サイトのFQDNを入力" --noemail --dbname "作成するDBの名前" --dbuser "dbユーザーの名前" --dbpass "dbユーザーのパスワード" "プロファイル名"
※以下はKUSANAGIの使用例
# kusanagi provision --wp --fqdn host.example.com --email saya@example.com --dbname kusanagi_html --dbuser kusanagi_html --dbpass kusanagi_passwd kusanagi_html
オプション | 内容 | 設定 |
–wp | wordpressをプロビジョンします。 | –wp(wordpressのアプリケーションを指定) |
–wplang | インストールするwordpressの言語を設定します。 | ja(wordpressの日本語版) |
–fqdn | 作成するプロファイルで使用するホスト名(FQDN)を指定します。指定されたホスト名は、Webサーバの設定ファイルおよび /etc/hosts ファイルに設定されます。 | サイトのFQDN |
–noemail | Let’s Encrypt のSSL証明書を発行しません。 | –noemail(証明書発行なし) |
–dbname | 指定したデータベース名で、データベースを新規作成します。 | DBの名前 |
–dbuser | データベースへアクセスするためのDBユーザー名を指定します。 | DBユーザー名 |
–dbpass | DBユーザに対応するパスワードを設定します。(8文字以上) | DBユーザーのパスワード |
新規環境の作成後の作業
新規環境の作成後に、データベースのリストアを行います。
データベースのリストア
リストアは、ターミナルで以下のコマンドをたたくだけです。新しい環境にMariaDBがインストールされていることが前提です。
$ mysql -u root-p データベース名 < dumpファイル
ちなみに、
新しいサーバーでKusanagi、Wordpress環境を構築後、バックアップを戻すと、旧サーバーへリダイレクトされるようになりました。そのため、ドメインのAレコードを新サーバーのIPに更新しました。
次回は、データベースをリストアした後に発生した諸問題を解決するための設定について記事にします。