前回は、KUSANAGI RoD(以下RoD)で環境を生成するためのオプションについて説明しました。今回は、provision後に生成されるターゲットディレクトリ以下のファイルについて説明しようと思います。
環境設定ファイル
環境設定ファイルは、.kusanagi で始まるファイルに格納されます。このファイル内に、各コンテナで使用する環境変数を記述しています。kusanagi-docker provision 前に環境変数を指定しておくと、環境生成時に環境変数の値が使用されます。
先頭が#で始まる行はコメント行です。使用しない環境変数にはデフォルト値を入れて、コメントアウトして記述することがあります。
.kusanagi
環境設定ファイル .kusanagi は、ターゲット内共通の環境変数を格納します。
- PROFILE=wordpress
- TARGET=wordpress
PROFILEとTARGETは本質的に同じものです。
プロビジョン時に指定したターゲット名を格納します。 - TARGETDIR=/home/user/wordpress
ターゲットディレクトリをフルパスで格納します。 - FQDN=wordpress.local
プロビジョン時に指定したFQDNを格納します。 - BASEDIR=/home/kusanagi/wordpress
Docker内部のベースディレクトリです。 - DOCUMENTROOT=/home/kusanagi/wordpress/DocumentRoot
Docker内部のhttpdのrootディレクトリです。 - ROOT_DIR=DocumentRoot
rootディレクトリ名です。 - KUSANAGI_PROVISION=wp
プロビジョンしたアプリケーション名です。c5/drupal/lamp/wp のいずれかが入ります。 - KUSANAGI_DB_SYSTEM=mysql
DB種別で、mysql か pgsqlが入ります。
.kusanagi.wp
環境変数ファイル .kusanagi.wp は、WordPressに関する環境変数を格納します。
- KUSANAGIPASS=XF78PJ6cI9l2s7i7mfz4Uww
kusanagi ユーザのパスワードです。 - WP_TITLE=”WordPress”
WordPressのタイトルです。 - WP_LANG=ja
WordPressの言語です。 - DBPREFIX=
DB内のテーブルのプレフィックスです。無指定時は”wp_” になります。 - MYSQL_CHARSET=utf8mb4
MySQLのデフォルト文字セットです。 - NO_USE_BCACHE=1
bcacheを有効にするかを指定します。 - 1 のときは、bcacheを使用しません
- 0のときは、bcacheを使用します
- ADMIN_USER=PKYkc4HyWe
管理者ユーザ名です。 - ADMIN_PASSWORD=WMdT5roYtf4+Fn4NCJoGF38
管理者パスワードです。 - ADMIN_EMAIL=PKYkc4HyWe@localhost.localdomain
管理者のメールアドレスです。
.kusanagi.httpd
環境設定ファイル .kusanagi.httpd は、ターゲット内のhttpdに関する環境変数を格納します。
- NO_USE_FCACHE=1
fcacheを有効にするかを指定します。 - 1 のときは、fcacheを使用しません
- 0のときは、fcacheを使用します
- USE_SSL_CT=off
SSL CT(Certificate Transparency )を有効にするかどうかを示します。on/off を指定します。 - USE_SSL_OSCP=off
SSL OCSP(Online Certificate Status Protocol)を有効にするかどうかを指定します。on/off を指定します。 - NO_USE_NAXSI=1
webアプリケーションファイアウォール NAXSIを使用するかどうかを指定します。 - 1のときはNAXSIを使用しません
- 0のときはNAXSIを使用します
- NO_USE_SSLST=1
SSL Strict-Transport を使用するかどうかを指定します。 - 1のときはStrict-Transportを使用しません
- 0のときはStrict-Transportを使用します
- NO_SSL_REDIRECT=1
http ポートでの接続をhttpsポートへリダイレクトするかどうかを指定します。 - 1のときは、httpsへのリダイレクトを行いません
- 0のときは、httpsへのリダイレクトを行います
- EXPIRE_DAYS=90 expire_days を設定します(デフォルトは90日)。この設定はnginx使用時のみ有効です。
- OSCP_RESOLV=8.8.8.8 OSCPを有効にする場合のDNSリゾルバを指定します。指定されない場合、GoogleのDNSサーバを使用します。
- SSL_DHPARAM=”—–BEGIN DH PARAMETERS—–
MIIBCAKCAQEAyrsuGPhV6lu+8BBTdAB+sQQhjsKgphkFOliauprDSTIqYQNhvJ1T
(中略) fgEDDp2Dajuem6L9daTZhW2OI3pcp4pLcwIBAg== —–END DH PARAMETERS—– ” Diffie-Helman方式鍵交換の値を設定します。通常ファイル形式で提供されますが、ファイル内容の行末を空白1つに変換した値が入ります。この変数が空文字列の場合、nginx/httpdがSSLホスト鍵を再生成します。
.kusanagi.php
環境設定ファイル .kusanagi.phpは、ターゲット内のphpに関する環境変数を格納します。
現状では推奨値のままとなっていますが、php-fpmのチューニング時に使用できます。
- #PHP_PORT=127.0.0.1:9000
php-fpm デーモンのLISTENポートです。デフォルトでは、同じネットワークの9000番ポートとなります。 - #PHP_MAX_CHILDLEN=500
php-fpmデーモンが起動する、子プロセスの最大数です。 - #PHP_START_SERVERS=10
php-fpmデーモンが、最初に起動する子プロセスの数です。 - #PHP_MIN_SPARE_SERVERS=5
php-fpmデーモンが、アイドル時に起動する子プロセスの最小数です。 - #PHP_MAX_SPARE_SERVERS=115
php-fpmデーモンが、アイドル時に起動する子プロセスの最大値です。 - #PHP_MAX_REQUESTS=500
php-fpmデーモンが子プロセスを再起動するまで、実行するリクエスト数です。子プロセスのメモリ肥大化を防ぐ役割があります。
.kusanagi.mysql
環境設定ファイル .kusanagi.mysqlは、ターゲット内のdb(MySQL)に関する環境変数を格納します。
- MYSQL_ROOT_PASSWORD=ilWP0p0w%ixV0hX8ue%OEW%
MySQLのルートパスワード。 - MYSQL_DATABASE=QqYz34Yqz9
データベース名。 - MYSQL_USER=U8jADnEqrG
データベースのユーザ名。 - MYSQL_PASSWORD=Q7LCraEJazpbc1+L4BD2WdB
データベースのパスワード。 - MYSQL_CHARSET=utf8mb4
デフォルト文字セット。 - #MYSQL_ALLOW_EMPTY_PASSWORD=
エンプティパスワードを許すか。yes/noを指定します。 - #MYSQL_RANDOM_ROOT_PASSWORD=
ルートパスワードをランダムにするか。yes/noを指定します。 - #SOCKET=
ソケットファイル名を指定する。 - #MYSQL_INITDB_SKIP_TZINFO=
初回起動時に実行されるタイムゾーンテーブルのロードがスキップするか。yes/noを指定します。 - #MYSQL_ROOT_HOST=
rootユーザーとしてMySQLサーバーへアクセスできるようにするか。yes/noを指定します。
.kusanagi.db
環境設定ファイル .kusanagi.dbは、ターゲット内のDBアクセスするコンテナが使用する環境変数を格納します
- DBLIB=/var/run/mysqld
socket ファイルの場所。 - DBHOST=localhost
DBのホスト名。 - DBNAME=QqYz34Yqz9
データベース名。 - DBUSER=U8jADnEqrG
データベースのユーザ名。 - DBPASS=Q7LCraEJazpbc1+L4BD2WdB
データベースのパスワード。
.kusanagi.mail
環境変数.kusanagi.mailは、PHPからメール送信時に使用する環境変数を格納しています。phpイメージ内には、ssmtpというメール送信用のリレーサーバがインストールされています。この環境変数は、そのために使用します。デフォルトでは何も指定されていません。
- #MAILSERVER=
メールサーバ。 - #MAILDOMAIN=
ドメイン名。 - #MAILUSER=
メールユーザ。 - #MAILPASS=
SMTPAUTH時のパスワード。 - #MAILAUTH=
SMTPAUTHの方式。
終わりに
今回は、環境設定ファイルの内容について説明しました。次回は、RoDにおけるconfigコンテナの役割について説明しようと思います。次回をお楽しみに。