bifterx
(rob Dennis)
1
こんにちは
少し困っています。
標準的なインストール手順に従い、Mailjet などの設定も完了しましたが、ブートストラップが毎回失敗します。
設定内容は以下の通りです。何が不足しているのか分かりません。
ご助言いただけないでしょうか?
ありがとうございます。
設定はこれで正しいでしょうか?
ホスト名 : forum.mydomain.com
メールアドレス : forumadmin@mydomain.com
SMTP アドレス : in-v3.mailjet.com
SMTP ポート : 587
SMTP ユーザー名 : b91xxxxxxd3222d809xxxxxxe3de52d
SMTP パスワード :xxxxxx5b75ecdf24f31c2axxxxxx6903
Let's Encrypt : PASSWORD (SECRET KEY)
その後
失敗
--------------------
Pups::ExecError: /bin/bash -c "if [[ ! \"$LETSENCRYPT_ACCOUNT_EMAIL\" =~ ([^@]+)@([^\.]+) ]]; then echo \"LETSENCRYPT_ACCOUNT_EMAIL is not a valid email address\"; exit 1; fi" がエラーで終了しました (戻り値: #<Process::Status: pid 5329 exit 1>)
失敗の場所: /pups/lib/pups/exec_command.rb:112:in `spawn'
以下のパラメータで exec が失敗しました: {"cmd"=>["if [ -z \"$LETSENCRYPT_ACCOUNT_EMAIL\" ]; then echo \"LETSENCRYPT_ACCOUNT_EMAIL ENV variable is required and has not been set.\"; exit 1; fi", "/bin/bash -c \"if [[ ! \\\"$LETSENCRYPT_ACCOUNT_EMAIL\\\" =~ ([^@]+)@([^\\.]+) ]]; then echo \\\"LETSENCRYPT_ACCOUNT_EMAIL is not a valid email address\\\"; exit 1; fi\""]}
xxxxxxxxxxxxxxxxxxxxxxe6e31b17b7exxxxxxxxxxxxxxxxxx856eb0
** ブートストラップに失敗しました ** 上記をスクロールして、より以前のエラーメッセージを確認してください。複数のエラーが発生している可能性があります。
./discourse-doctor で問題の診断ができるかもしれません。
Stephen
(Stephen)
2
Let’s Encrypt フィールドのメールアドレスがパスワードや秘密鍵になる理由は何ですか?それはメールアドレスであるはずです。
bifterx
(rob Dennis)
3
LET’S ENCRYPT の入力欄に何も入力できません。
SMTP のユーザー名とパスワードを入力すると、すぐに実行されてしまいます。
bifterx
(rob Dennis)
4
はい、どうやら Let’s Encrypt に関する変数のようですが、前述の通り、インストールスクリプトではメールアドレスを入力する機会が与えられません。SMTP パスワードが入力されるとすぐに、その段階をスキップしてエラーが表示されてしまいます。
ここで確認できます…
Discourse のホスト名を入力してください? [forum.uaptn.com]:
管理者アカウントのメールアドレスを入力してください? [forumadmin@uaptn.com]: xxxxxxxxe@protonmail.com
SMTP サーバーアドレスを入力してください? [in-v3.mailjet.com]:
SMTP ポートを入力してください? [587]:
SMTP ユーザー名を入力してください? [b91xxxxxxxxxxxxxxxxxxde52d]:
SMTP パスワードを入力してください? [1d2xxxxxxxxxxxxxxxxxxxxxxxxxxxx903]:
./discourse-setup: line 438: [: 引数が多すぎます
ドメイン名を確認しています . . .
forum.uaptn.com への接続に成功しました。
以下の内容で問題ありませんか?
ホスト名 : forum.uaptn.com
メールアドレス : xxxxxxxxx@protonmail.com
SMTP アドレス : in-v3.mailjet.com
SMTP ポート : 587
SMTP ユーザー名 : b91xxxxxxxxxxxxxxxxxxxxxe52d
SMTP パスワード : 1d2cxxxxxxxxxxxxxxxxxxx5086903
Let's Encrypt : PASSWORD (SECRET KEY)
続行するには Enter キー、再試行するには 'n' キー、終了するには Ctrl+C キーを押してください:
秘密のパスワードの代わりに、ここにメールアドレスを入力してください。
このメールアドレスは、Let’s Encrypt にアカウントを作成し、Discourse 用の SSL 証明書を取得するために使用されます。
pfaffman
(Jay Pfaffman)
6
Let’s Encrypt のメールアドレスを入力できない理由がわかりません。余計な改行を貼り付けていませんか?
bifterx
(rob Dennis)
7
なるほど、その考えはいいですね。試してみましょう。
bifterx
(rob Dennis)
8
それは違います。スクリプトはパスワードを入力するとすぐに Let’s Encrypt の処理を素通りし、「line 438: [: too many arguments」というエラーを表示して続行してしまいます。
パスワードに特殊文字が含まれていますか?123456 のような特殊文字を含まない仮のパスワードを入力し、Let’s Encrypt のメールアドレスの入力を求められるか確認してください。
bifterx
(rob Dennis)
10
いいえ、違います。Mailjet から直接生成されたパスワードですが、仮のパスワードを試してみます。
おそらく、スクリプトが質問していないのは、すでに app.yml に記述されているためであり、この理由 でエラーが発生しているのでしょう(app.yml ファイル内にメールアドレスがすでに誤って設定されているため)。
ファイル内のメールアドレスを手動で変更して動作を確認してみてください(nano containers/app.yml)。
エラーが発生した行 は、Let’s Encrypt のメールアドレスが空でないかを確認して表示し、変更するかどうかを尋ねるためのものです。しかし、条件式で変数を二重引用符で囲んでいないため、app.yml にある値が展開され、Too many arguments というエラーが発生します。
Discourse チームが変数を二重引用符で囲んでいれば、このようなケースを回避できたかもしれませんが、いずれにせよ稀なケースでしょう(おそらく設定を初めて実行した際に、値が誤って設定されたのだと思います)。
bifterx
(rob Dennis)
13
それで動きました
- 具体的には、app.yml を手動で変更した後、そのステップが提供されるということです
ブートストラップがうまくいくことを祈っています
ありがとうございます。