Skip to:
より。センシティブな設定をデータベースに保存したくないユーザのために MT_CONFIG_ で始まるシステム環境変数経由で MT の設定を指定できるようにする。ひとまずすべて大文字、区切りなしの環境変数が設定されていたらその値を利用するものとするが、初期化時に手を入れればスネークケースにしたものを大文字化したものを許容するくらいはできそう。複数の値を取り得るものについては書式が複雑になるので対応しない。また、環境変数由来の値が存在しているときはその値を上書きしたりデータベースに保存したりできないようにしておいた方がよさそう。
MT_CONFIG_
システム環境変数があったらウイザードの初期値を上書きしたり mt-config.cgi には書き出さないようにしたりする必要もありそうだが、フォームフィールド名と環境変数名の対応がかならずしも一致せず、あれこれ書き直す(か、マッピングテーブルを用意して都度読み替えてやる)必要があるので別枠で扱う。
ありがとうございます。マージしました。
3バージョンとも上記手順で起動/管理画面へアクセスできる事を確認。env.ymlの中身を大文字小文字混在、アンダースコアを入れた場合も同様に、アクセスできる事を確認。
env.yml
ありがとうございます。
それぞれ以下で対応しました。
(MT8)
(MT80)
(MT7)
今回も検証時に mt-dev 環境に手を入れる必要があります。手元で動作することは確認してありますが、詰まったらお知らせください。
mt-dev/mt/env.yml を以下のような内容で保存する
手元に mt-dev 用の mt-config.cgi があったら、 DBUser と DBPassword の項目をコメントアウトしておく
この状態で vagrant mt-dev up-psgi (ないし make up-psgi) して、管理画面にアクセスする(DB につながらないのでしばらく待たされて、いずれはタイムアウトしますが、つながらないことが確認できたら止めてよいです)
一度 mt-dev 環境を止める
起動時のオプションに DOCKER_COMPOSE_USER_YAML="-f ./mt/env.yml" を追加(するか、 .env ファイルに書いておいたうえで)して再度 mt-dev 環境を立ち上げる
DOCKER_COMPOSE_USER_YAML="-f ./mt/env.yml"
.env
今度は管理画面に正しくアクセスできることを確認する
必要に応じて MT_CONFIG_DB_USER のようにアンダースコアを追加して読みやすくした場合や、 MT_CONFIG_DBUser のように大文字小文字が混ざっている場合でも期待通りの動作をするか試してみてください
検証が終わったら mt/env.yml と DOCKER_COMPOSE_USER_YAML の設定を消して、 mt-config.cgi も元に戻しておいてください
ありがとうございます。良さそうです。
ありがとうございます。MT 8.0 / 7 用の PR も追加しました。念のためレビューおねがいします。なお、MT7 には stringify_config がないのでテストを微調整しています。
より。センシティブな設定をデータベースに保存したくないユーザのために
MT_CONFIG_
で始まるシステム環境変数経由で MT の設定を指定できるようにする。ひとまずすべて大文字、区切りなしの環境変数が設定されていたらその値を利用するものとするが、初期化時に手を入れればスネークケースにしたものを大文字化したものを許容するくらいはできそう。複数の値を取り得るものについては書式が複雑になるので対応しない。また、環境変数由来の値が存在しているときはその値を上書きしたりデータベースに保存したりできないようにしておいた方がよさそう。システム環境変数があったらウイザードの初期値を上書きしたり mt-config.cgi には書き出さないようにしたりする必要もありそうだが、フォームフィールド名と環境変数名の対応がかならずしも一致せず、あれこれ書き直す(か、マッピングテーブルを用意して都度読み替えてやる)必要があるので別枠で扱う。