前回はkusanagi initの解説をしましたが、その続きにWebサイトを外部からアクセスさせるためにプロビジョニング作業が必要です。その作業で行うコマンドはkusanagi provisionコマンドになります。
kusanagi provisionコマンドはWebサーバーの基本設定や必要なパッケージのダウンロードと設置、データベースの作成の作業を行うコマンドです。
現在kusanagi provisionでサポートしているプロビジョンニングの種類はWordPress、MovableType、Drupal、LAMP(LEMP)、Perl CGIになります。
各種類プロビジョン時に指定必要なオプションと種類毎に指定できるオプション、プロビジョニング後に設置されたファイルやフォルダについて解説します。
では、早速ですがコマンドのオプションの紹介に入りたいと思います。
必須のコマンドラインオプション
プロファイル名
オプション: profile
/home/kusanagiに指定したプロファイル名と同じ名前のフォルダが作成されます。
プロファイル名に指定できる文字は「A~Z、a~z、0~9、.、_、-」です。文字列の長さは3~24文字である必要があります。
プロビジョニングの種類
オプション: --
wp、--
WordPress、--
lamp、--
LAMP、--
fcgi、--
FCGI、--
mt、--
MT、--
MovableType、--
drupal、--
Drupal
プロビジョニングできる種類によって指定するオプション
- WordPressを利用する場合オプションに
--
wp もしくは--
WordPress を指定してください。 - MovableTypeを利用する場合オプションに
--
mt もしくは--
MT もしくは--
MovableType を指定してください。
「KUSANAGI」でMovable Type を簡単セットアップの動画も参考にしてください。 - Drupalを利用する場合オプションに
--
drupal もしくは--
Drupal を指定してください。 - LAMP もしくは LEMPを利用する場合オプションに
--
lamp もしくは--
LAMP を指定してください。 - Perl CGIを利用する場合オプションに
--
fcgi もしくは--
FCGI を指定してください。(LAMP もしくは LEMPとしても動作します。)
ホスト名
オプション: --
fqdn ホスト名
こちらのオプションはプロビジョンされたプロファイルに外部からのアクセス用のホスト名を指定します。
APEXを指定した場合、自動的にwwwのサブドメインが追加されます。
※APEXはサブドメインを含まない、ドメイン自体のことです。例:kusanagi.tokyo
データベース名
オプション: --
dbname データベース名
プロビジョンされたプロファイル用の新規作成データベースの名前です。
データベース名に指定できる文字は「A~Z、a~z、0~9、.、_、-」です。文字列の長さは3~64文字である必要があります。
データベースユーザー名
オプション: --
dbuser データベースユーザー名
上記で作成されたデータベースにアクセスするためのユーザー名になります。
ユーザー名に指定できる文字は「A~Z、a~z、0~9、.、_、-」です。文字列の長さは3~16文字である必要があります。
データベースユーザーのパスワード
オプション: --
dbpass パスワード
上記で設定したデータベースユーザーのパスワードになります。
データベースユーザーのパスワードに指定できる文字は「A~Z、a~z、0~9、.、!、#、%、+、_、-」です。文字列の長さは8文字以上である必要があります。
Let’s Encrypt のSSL証明書
オプション: --
email --
noemail/--
no-email
プロビジョン時に一緒にLet’s Encrypt のSSL証明書も発行したい場合、「--
email メールアドレス」を入力してください。
※事前にホスト名が外部サーバーからアクセスできるように設定が必要です
オプション --
noemail もしくは --
no-email を指定するとLet’s Encrypt のSSL証明書を発行しません。
共通の追加オプション
明示的にwwwつきのホスト名(FQDN)を追加
オプション: [--
with-www]
オプション--
fqdnに設定されたFQDNの前に更にサブドメインwwwを追加する場合、こちらのオプションを指定できます。
例: --
fqdn example.kusanagi.tokyo --
with-www
プロビジョン時に上記のようなオプションを指定すると
FQDNはexample.kusanagi.tokyoとwww.example.kusanagi.tokyoにプロビジョンされます。
プロビジョニングの種類関連の追加オプション
プロビジョニングの種類によって、追加で指定できるオプションです。
指定しなかったらデフォルト値が設定されます。
WordPress言語の設定(WordPress)
オプション: [--
wplang {en_US|ja}]
デフォルトは ja です
WordPressの利用言語を指定できます。
他の言語もしくは英語で設定したい場合、 en_US を指定し、WordPressのインストール時に言語を選択できるようになります。
WordPressバージョンの設定(WordPress)
オプション: [--
wpversion WordPressバージョン]
デフォルトは latest です。
最新版以外のWordPressをインストールしたい場合、こちらのオプションで指定できます。
例:「--
wpversion 5.9.5」で指定したら、WordPress 5.9.5がインストールされます。
Drupalのバージョンの設定(Drupal)
オプション: [--
drupalversion Drupalバージョン]
デフォルトは 9 です。
指定できるバージョンは9もしくは10になります。
Movable Typeのパッケージの設定(Movable Type)
オプション: [--
package パッケージ名]
デフォルトはなしです。
指定しなかった場合は、プロビジョニング後に手動でMovable Type のアプリケーションを配置する必要があります。
MovableTypeのパッケージダウンロードはライセンスの購入が必要のため、
ご自身でライセンスを購入後にパッケージをダウンロード、サーバーにアップロードし、オプション --
package でパッケージのファイル名を指定してください。
パッケージの形式はzip、tar.gzの両方に対応しています。
これでkusanagi provisionコマンドオプションを一通り紹介しました。
では、実際に一回プロビジョンしてみましょう。
モデルケース
WordPressを利用するWebサイトをプロビジョンします。
$kusanagi provision --wp --fqdn wordpress.localhost-test.com --dbuser wp-user --dbname wp-dbname --dbpass パスワード --no-email wp-example
Target directory is /home/kusanagi/wp-example.
provision mariadb completed.
provision db completed.
--2023-02-20 18:17:43-- https://ja.wordpress.org/latest-ja.zip
Resolving ja.wordpress.org (ja.wordpress.org)... 198.143.164.252
Connecting to ja.wordpress.org (ja.wordpress.org)|198.143.164.252|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 25242251 (24M) [application/zip]
Saving to: '/tmp/wp_dl_dir.baVueQ/wordpress.zip'
0K .......... .......... .......... .......... .......... 0% 283K 87s
~~~略~~~
24650K 100% 1213G=8.0s
2023-02-20 18:17:52 (3.02 MB/s) - '/tmp/wp_dl_dir.baVueQ/wordpress.zip' saved [25242251/25242251]
Success: Shuffled the salt keys.
reload completed.
Provisioning of wp-example completed. Access wordpress.localhost-test.com and install wp.
provision completed.
provision completed.と表示されたら、プロビジョンが完了です。
サイトにアクセスするとWordPressのインストール画面が表示されます。
プロビジョン後にどういうフォルダやコンフィグなどが作成されたかも確認してみましょう。
Webサーバーの関連コンフィグ
$ ls -l /etc/opt/kusanagi/httpd/conf.d/wp-example.*
-rw-r--r--. 1 root root 2097 2月 20 18:17 /etc/opt/kusanagi/httpd/conf.d/wp-example.conf
$ ls -l /etc/opt/kusanagi/nginx/conf.d/wp-example.*
-rw-r--r--. 1 root root 1757 2月 20 18:17 /etc/opt/kusanagi/nginx/conf.d/wp-example.conf
-rw-r--r--. 1 root root 1310 2月 20 18:17 /etc/opt/kusanagi/nginx/conf.d/wp-example.wp.inc
httpdとnginxの設定フォルダに上記の関連コンフィグファイルが追加されました。
WordPressをプロビジョンしたのため、/etc/opt/kusanagi/nginx/conf.d/wp-example.wp.incに追加されましたが、
プロビジョニングの種類により追加されるファイルが違います。
- WordPressの場合:/etc/opt/kusanagi/nginx/conf.d/プロファイル名.wp.inc
- MovableTypeの場合:/etc/opt/kusanagi/nginx/conf.d/プロファイル名.mt.inc
- Drupalの場合:/etc/opt/kusanagi/nginx/conf.d/プロファイル名.drupal.inc
- LAMPの場合:/etc/opt/kusanagi/nginx/conf.d/プロファイル名.lamp.inc
- FASTCGIの場合:/etc/opt/kusanagi/nginx/conf.d/プロファイル名.fcgi.inc
今回、中身の確認は割愛をします。
プロファイル関連フォルダ
/home/kusanagi/プロファイル名で確認すると下記のフォルダが作成されています。
$ ls -l /home/kusanagi/wp-example/
合計 12
drwxrwxr-x. 5 kusanagi www 4096 2月 20 18:17 DocumentRoot
drwxr-xr-x. 4 root root 32 2月 20 18:17 log
drwxr-xr-x. 2 kusanagi kusanagi 34 11月 15 15:15 settings
drwxr-xr-x. 2 kusanagi kusanagi 30 2月 20 18:17 tools
-r--r-----. 1 kusanagi www 4151 2月 20 18:17 wp-config.php
各フォルダの役割
「settings、tools」の2つのフォルダはWordPressをプロビジョンした時のみ生成されます。
- DocumentRoot:Webサイトからアクセスのルートフォルダになります(今回はWordPressのファイルが配置されます)
- log:httpdとnginxのアクセスログなどを格納するフォルダになります。
- settings:KUSANAGI最適化関連の設定
- tools:KUSANAGIツール
KUSANAGIを利用してWebサイトを公開しているなら、kusanagi provisionは必ず利用されるコマンドと思います。
プロビジョニング後にWebサイトが動作していることはサイトにアクセスすればすぐ確認できるが、実際のプロビジョン時にそのオプションはどういう時に使用するか、プロビジョン後にどういうフォルダやファイルが作成されるかの参考になればよいと思います。