Discourse が Apache とプロキシリダイレクトで読み込まれない

過去数日間、同じ DigitalOcean ドロplet上で Discourse と Apache を連携させる方法を探してきましたが、Discourse のサイトにあるチュートリアルは時代遅れだったり、私には適用できなかったりします。あるチュートリアルでは CentOS と HAProxy を使用していますが(私は Ubuntu を使用)、別のチュートリアルでは Nginx を使用しています(私は Apache を使用)。

DigitalOcean のスレッドにあるコメントを見つけ、テスト用のドロpletでその指示に従いました:Install Discourse on a droplet with WordPress served by Apache ? | DigitalOcean

Let’s Encrypt の SSL を含め、すべてがスムーズに進んだようです。ホームページやいくつかの静的 HTML ドキュメントは問題なく動作しています。Discourse はエラーなしでインストールされましたが、表示されません。community.mysite.com にアクセスすると、URL にセキュリティが保護されていない HTTPS が表示されるホームページが表示されるだけです。DNS 設定は正確で、正しいサーバーを指していることは確認済みです。

これが私の mysite.com.conf です:

<VirtualHost *:80>
	ServerAdmin webmaster@localhost
	ServerName mysite.com
	ServerAlias www.mysite.com
	DocumentRoot /var/www/mysite.com
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.mysite.com [OR]
RewriteCond %{SERVER_NAME} =mysite.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

これが私の mysite.com-le-ssl.conf です:

<IfModule mod_ssl.c>
<VirtualHost *:443>
	ServerAdmin webmaster@localhost
	ServerName mysite.com
	ServerAlias www.mysite.com
	DocumentRoot /var/www/mysite.com
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/mysite.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mysite.com/privkey.pem
</VirtualHost>
</IfModule>

これが私の community.mysite.com.conf です:

<VirtualHost *:80>
  ServerName community.mysite.com
  ServerAlias www.community.mysite.com

  <IfModule proxy_module>
    ProxyPreserveHost on
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
  </IfModule>
</VirtualHost>

最後に、これが私の app.yml です(もちろん編集済み):

## これはオールインワンのスタンドアロン Discourse Docker コンテナテンプレートです
##
## このファイルを変更した後、必ず再構築してください
## /var/discourse/launcher rebuild app
##
## 編集時には非常に注意してください!
## YAML ファイルは空白やアライメントの誤りに非常に非常に敏感です!
## 必要に応じて http://www.yamllint.com/ にアクセスしてこのファイルを検証してください

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## Lets Encrypt (https) を追加したい場合は、以下の 2 行のコメントアウトを解除してください
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"

## このコンテナが公開する TCP/IP ポートはどれですか?
## Discourse を Apache や nginx などの他の Web サーバーとポートを共有したい場合は、
## https://meta.discourse.org/t/17247 を参照してください
expose:
      - "8080:80"   # ホストポート 8080 をコンテナポート 80 (http) に転送
      - "8443:443"   # ホストポート 8443 をコンテナポート 443 (https) に転送

params:
  db_default_text_search_config: "pg_catalog.english"

  ## db_shared_buffers を総メモリの最大 25% に設定します。
  ## ブートストラップによって検出された RAM に基づいて自動的に設定されますが、上書きすることもできます
  db_shared_buffers: "128MB"

  ## ソートパフォーマンスを向上させることができますが、接続ごとのメモリ使用量が増加します
  #db_work_mem: "40MB"

  ## このコンテナが使用する Git リビジョンはどれですか?(デフォルト:tests-passed)
  #version: tests-passed

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## 同時にサポートされる Web リクエストの数です。メモリと CPU コア数に依存します。
  ## ブートストラップによって検出された CPU に基づいて自動的に設定されますが、上書きすることもできます
  UNICORN_WORKERS: 2

  ## TODO: この Discourse インスタンスが応答するドメイン名
  ## 必須です。Discourse は IP アドレスのみでは動作しません。
  DISCOURSE_HOSTNAME: community.mysite.com

  ## 上記で指定したホスト名と同じホスト名(-h オプション)でコンテナを起動したい場合は、コメントアウトを解除してください
  #DOCKER_USE_HOSTNAME: true

  ## TODO: 初期登録時に管理者および開発者として登録されるメールのコンマ区切りリスト
  ## 例:'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'myemail'

  ## TODO: 新しいアカウントの検証と通知の送信に使用する SMTP メールサーバー
  # SMTP アドレス、ユーザー名、パスワードが必要です
  # 警告:SMTP パスワードの文字 '#' は問題を引き起こす可能性があります!
  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: my-smtp-username
  DISCOURSE_SMTP_PASSWORD: "my-smtp-password"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (オプション、デフォルトは true)

  ## Lets Encrypt テンプレートを追加した場合は、以下をコメントアウトして無料の SSL 証明書を取得してください
  LETSENCRYPT_ACCOUNT_EMAIL: myemail

  ## この Discourse インスタンスの http または https CDN アドレス(プルするように設定)
  ## 詳細については https://meta.discourse.org/t/14857 を参照してください
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

## Docker コンテナはステートレスです。すべてのデータは /shared に保存されます
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## プラグインはここに配置します
## 詳細については https://meta.discourse.org/t/19157 を参照してください
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

## ビルド後に実行する任意のカスタムコマンド
run:
  - exec: echo "Beginning of custom commands"
  ## 最初の登録用の 'From' メールアドレスを設定したい場合は、コメントアウトを解除して変更してください:
  ## 最初の登録メールを取得した後、行を再度コメントアウトしてください。一度だけ実行すれば十分です。
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "End of custom commands"

どこが間違っていたのか、あるいは何が不足しているのか教えていただけますか?ありがとうございます!

nginx をリバースプロキシとして使用すると、はるかにうまくいくはずです。

システムが許可する場合は、apache2 の代わりに nginx を使用することを検討してください。

「いいね!」 2

つまり、コミュニティはあなたのドメインにリダイレクトするのではなく、あなたの IP を指しているのですね。/etc/apache2/sites-enabled/ にシンボリックリンクは存在しますか?

proxy_module は読み込まれていますか?
apache2ctl -M

「いいね!」 1

シンボリックリンクはありません。

はい。幸いなことに、それは私がリンクしたチュートリアルの手順の一つです。

a2enmod proxy
a2enmod proxy_http
a2enmod proxy_balancer
a2enmod lbmethod_byrequests

ステップ

a2ensite community.yoursite.com

がうまくいかなかった可能性があります。sudo が必要かもしれません。

sudo ln -s /etc/apache2/sites-available/community.yoursite.com.conf /etc/apache2/sites-enabled/

でも同じことができます。
その後、

sudo apachectl configtest

を実行し、祈りを込めて

sudo systemctl restart apache2

を実行してください。

@OrbitStorm

Apache2 のバーチャルホスト設定と Discourse の yml ファイルを簡易的に拝見しましたが、正しく設定されていないようです。

いくつかのヒントをご案内します。

まず、Discourse をリバースプロキシの背後で実行する場合、Discourse の yml 設定で SSL LETSENCRYPT を有効にしてはいけません(動作例は後述)。Discourse が必要とするのは、リバースプロキシと通信するための単一のポートのみであり、これは SSL 暗号化された接続ではありません。

次に、メインのバーチャルホスト設定(リバースプロキシ上のポート 443)をご覧になると、以下のようになります。

<IfModule mod_ssl.c>
<VirtualHost *:443>
	ServerAdmin webmaster@localhost
	ServerName mysite.com
	ServerAlias www.mysite.com
	DocumentRoot /var/www/mysite.com
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

       Include /etc/letsencrypt/options-ssl-apache.conf
       SSLCertificateFile /etc/letsencrypt/live/mysite.com/fullchain.pem
       SSLCertificateKeyFile /etc/letsencrypt/live/mysite.com/privkey.pem
</VirtualHost>
</IfModule>

上記の設定には、必要なリバースプロキシに関する情報がすべて欠落しています(後述の動作する設定例を参照)。

以下に、ご参考となる動作する設定を示します。これは meta 上の各種チュートリアルに記載されているもの(当サイト内の他の投稿でも詳細にドキュメント化されています)と基本的に同じものです。

<VirtualHost *:80>
        ServerName discourse.your-great-web-site.com
        ServerAdmin webmaster@localhost
        ProxyPreserveHost On
        ErrorLog ${APACHE_LOG_DIR}/discourse_errors.log
        CustomLog ${APACHE_LOG_DIR}/discourse.log combined
        ModPagespeed Off
        RewriteEngine on
        RewriteCond %{SERVER_NAME} =discourse.your-great-web-site.com
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

ポート 80 の設定では、主に必要なディレクティブは ServerNameRewriteEngine、およびポート 443 へのリダイレクトを行う書き換えルールです。

また、Apache2 の mod_pagespeed を使用している場合は、無効にしてください。私はまだ mod_pagespeed を Discourse と併用して動作させることができておらず、その必要性も見ておりません。

以下は、実際の処理が行われるメインの設定です。

<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerName discourse.your-great-web-site.com
        ServerAdmin webmaster@localhost
        SSLProxyEngine on      # let's encrypt の設定が完了し動作確認が取れてからこれを有効化してください
  	    RewriteEngine on
  	    ProxyPreserveHost On
  	    ProxyRequests Off
  	    RequestHeader set X-Forwarded-Proto expr=%{REQUEST_SCHEME}
 	    RequestHeader set X-Real-IP expr=%{REMOTE_ADDR}

        #ProxyPass / http://127.0.0.1:8888/           # ポートは使用せず、your-great-web-site のソケットを使用します
        #ProxyPassReverse / http://127.0.0.1:8888/    # ポートは使用せず、your-great-web-site のソケットを使用します
        ProxyPass / your-great-web-site:/var/discourse/shared/socket-only/nginx.http.sock|http://localhost/
        ProxyPassReverse  / your-great-web-site:/var/discourse/shared/socket-only/nginx.http.sock|http://localhost/

        ErrorLog ${APACHE_LOG_DIR}/discourse_errors_ssl.log
        #CustomLog ${APACHE_LOG_DIR}/discourse_ssl.log combined   # 本番環境ではアクセスログを無効化しています

        ModPagespeed Off
        SSLCertificateFile /etc/letsencrypt/live/discourse.your-great-web-site.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/discourse.your-great-web-site.com/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

当社のすべての Discourse 設定では UNIX ドメインソケットを使用していますので、ご希望の設定に合わせて設定を変更する必要があります。

理解すべき主な点(まとめ)は、Discourse のビルド(yml)設定で LETSENCRYPT を無効にし、Discourse への単一のエントリーポイントのみを公開することです。当社では UNIX ドメインソケットを使用していますが、あなたの場合は単一の TCP/IP ソケットを使用することになります。

その後、そのエントリーポイントへポート 443 のバーチャルホストファイルから(ポート 80 のバーチャルホストからではなく)リバースプロキシを設定します。ポート 80 のバーチャルホストは単に 443 へリダイレクトするだけです。443 の SSL はすべてリバースプロキシ側で LETSENCRYPT によって処理されます。Discourse の yml ファイルに SSL は必要ありません(動作例は後述)。

以下は、上記の設定に対応する当社の動作する yml ファイルの一例です。ご確認いただければ幸いです。

/var/discourse/containers$ cat socket-only.yml
# IMPORTANT: SET A SECRET PASSWORD in Postgres for the Discourse User
# TODO: change SOME_SECRET in this template

templates:
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/web.socketed.template.yml"
#  - "templates/sshd.template.yml"
## Uncomment these two lines if you wish to add Lets Encrypt (https)
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

## which TCP/IP ports should this container expose?
## If you want Discourse to share a port with another webserver like Apache or nginx,
## see https://meta.discourse.org/t/17247 for details
expose:
#  - "80:80"   # http
#  - "443:443" # https

# Use 'links' key to link containers together, aka use Docker --link flag.
links:
  - link:
      name: data
      alias: data

# any extra arguments for Docker?
# docker_args:

params:
  ## Which Git revision should this container use? (default: tests-passed)
  #version: latest
  db_shared_buffers: "4GB"

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8

  # DISCOURSE_DEFAULT_LOCALE: en

  ## How many concurrent web requests are supported? Depends on memory and CPU cores.
  ## will be set automatically by bootstrap based on detected CPUs, or you can override
  #UNICORN_WORKERS: 3
  UNICORN_WORKERS: 8

  ## TODO: The domain name this Discourse instance will respond to
  DISCOURSE_HOSTNAME: 'discourse.your-great-web-site.com'

  ## Uncomment if you want the container to be started with the same
  ## hostname (-h option) as specified above (default "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: List of comma delimited emails that will be made admin and developer
  ## on initial signup example 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'tim@discourse.your-great-web-site.com'

  ## TODO: The SMTP mail server used to validate new accounts and send notifications
  # SMTP ADDRESS, username, and password are required
  # WARNING the char '#' in SMTP password can cause problems!
  DISCOURSE_SMTP_ADDRESS: smtp.gmail.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: not_for_reply@discourse.your-great-web-site.com
  DISCOURSE_SMTP_PASSWORD: my_super_secret_cool_password
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, default true)

  ## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate
  #LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

  ## TODO: configure connectivity to the databases
  DISCOURSE_DB_SOCKET: ''
  #DISCOURSE_DB_USERNAME: discourse
  DISCOURSE_DB_PASSWORD: another_super_secret_cool_password
  DISCOURSE_DB_HOST: data
  DISCOURSE_REDIS_HOST: data

  DISCOURSE_MAXMIND_LICENSE_KEY: my_max_mind_key
  ## The http or https CDN address for this Discourse instance (configured to pull)
  ## see https://meta.discourse.org/t/14857 for details
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

volumes:
  - volume:
      host: /var/discourse/shared/socket-only
      guest: /shared
  - volume:
      host: /var/discourse/shared/socket-only/log/var-log
      guest: /var/log

## Plugins go here
## see https://meta.discourse.org/t/19157 for details
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-bbcode.git
          - git clone https://github.com/discourse/discourse-sitemap.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-whos-online.git
          - git clone https://github.com/unixneo/legacy-info.git

## Remember, this is YAML syntax - you can only have one block with a name
run:
  - exec: echo "Beginning of custom commands"

  ## If you want to configure password login for root, uncomment and change:
  ## Use only one of the following lines:
  #- exec: /usr/sbin/usermod -p 'PASSWORD_HASH' root
  #- exec: /usr/sbin/usermod -p "$(mkpasswd -m sha-256 'RAW_PASSWORD')" root

  ## If you want to authorized additional users, uncomment and change:
  #- exec: ssh-import-id username
  #- exec: ssh-import-id anotherusername

  - exec: echo "End of custom commands"
  #- exec: awk -F\# '{print $1;}' ~/.ssh/authorized_keys | awk 'BEGIN { print "Authorized SSH keys for this container:"; } NF>=2 {print $NF;}'

基本を理解すれば非常に簡単です。基本を理解することは非常に役立ちます :slight_smile:

念のためですが、当社の Discourse 設定では単一のコンテナを実行していません(実際、単一コンテナモードで実行することはめったにありません)。そのため、提供した yml ファイルは単一コンテナ(スタンドアロン)設定では動作しません。これは、Apache2 の背後で完全に動作する設定がどのようなものかを示す参考資料として提供しています。

当社は Discourse を Apache2 と nginx の両方のリバースプロキシの背後で実行しています。実際、多くの理由からリバースプロキシのみを使用しています。その理由の一つは、リバースプロキシを使って悪質なボットなどをフィルタリングできることです(これは全く別の話題です)。

Apache2 を使用したサイトで、Docker 化された Discourse を(1 つでも 100 個でも好きなだけ)リバースプロキシの背後で実行することに難しさはありません。ただし、基本的な概念を理解していることは役立ちます。

基本的な概念と動作する設定ファイルの両方を提供することで、Discourse の立ち上げと運用がスムーズに進むことを願っております。

よろしくお願いいたします…

「いいね!」 1

@neounix 非常に詳細な回答をいただき、ありがとうございます。しかし、私が直面している問題の大半は、適切な最新のチュートリアルが見つからないことに起因しているようです。ここにあるいくつかのチュートリアルでは、yml ファイルで Discourse の SSL を有効にするよう指示されており、その中の一つでは、Let’s Encrypt が自動的に処理してくれるため、VirtualHost ファイルにプロキシ情報を追加する必要はないと記載されています。しかし、あなたの例はデフォルト設定とも大きく異なり、CentOS 設定と Ubuntu 設定を混ぜ合わせようとするのと同じくらい混乱を招いています。

基礎を理解することが何よりも重要だとおっしゃる点は、全くその通りです。しかし、問題は基礎が適切に解説されていないこと、あるいは解説されていても3年前のものであり、Apache を使用している人(Nginx ではなく)や Ubuntu を使用している人(CentOS ではなく)への配慮が全く欠けていることです。また、Discourse は私が Docker を利用する唯一の理由であることも付記しておきます。

Apache と併せてアプリケーションをインストールしようと4日間費やした結果、もう限界です。無料かどうかは関係なく、この頭痛の種に値するものではなく、同じ2つの古くなったかつ不完全なチュートリアルへのコピペリンクを次々と見つけ続けるために、フォーラムをくまなく探すつもりもありません。Discourse 以前に、単にフォーラムソフトウェアをインストールするだけでこれほどイライラした経験は一度もありませんでした。これだけで十分物語っています。XenForo と Invision は私が無限の経験を持つ2つのプラットフォームですが、それらのインストールや使用はまさに楽勝です。

あなたの回答に費やした努力には心から感謝していますが、私からあなたに作業を依頼するつもりはありませんし、適切なドキュメントが存在すれば、そもそもそんなことをする必要もないはずです。私の特定の状況(実は私に特有のものではない)が、新規ユーザーにとってこのプロセスをより容易にする新しいチュートリアルで取り上げられていないことに、ただ驚くばかりです。

いずれにせよ、あなたのご健闘をお祈りしています。

「いいね!」 3

Discourse への移行を完全に意図していたにもかかわらず、CentOS/Nginx に特化した現在のドキュメントが皆無だったため、DigitalOcean の非常に親切で忍耐強い方が、私が作成したスレッドに返信してくれました。試行錯誤の末、私と同じ状況にある Discourse の見込みユーザー向けの、簡単に 따라할 수 있는チュートリアルを一緒に作成してくれました。

おさらいすると、その状況は以下の通りです:

Apache と同じサーバーに Discourse をインストールする | Ubuntu 18.04 | DigitalOcean

credit to Bobbyiliev @ DigitalOcean
Install Discourse on a droplet with WordPress served by Apache ? | DigitalOcean (最初の回答)

前提条件

  • 万が一の問題に備え、Droplet のバックアップを取得しておくことを強くお勧めします。何か問題が発生した場合、動作するバージョンに戻すことができます。
  • Droplet に SSH で接続します。
  • Apache がインストールされている必要があります。インストール手順は以下をご覧ください:

ステップ 1 - Docker のインストール

Docker のインストール手順は以下をご覧ください:

ステップ 2 - Discourse のダウンロード

まず、Discourse ファイルを格納するディレクトリを作成します:

mkdir /var/discourse

その後、公式の Discourse Docker イメージを /var/discourse にクローンします。

git clone https://github.com/discourse/discourse_docker.git /var/discourse

ステップ 3 - Discourse をポート 8080 でリッスンするように設定する

PostgreSQL、Redis などの必要なサービスが含まれている standalone.yml テンプレートを使用します。

以下のコマンドでサンプルファイルをコピーします:

cp /var/discourse/samples/standalone.yml /var/discourse/containers/app.yml

その後、お好みのエディタでファイルを編集します。/var/discourse/containers/app.yml を開き、23 行目と 24 行目のポート設定を更新します:

## このコンテナが公開する TCP/IP ポートは?
expose:
  - "8080:80"   # ホストポート 8080 をコンテナポート 80 (http) に転送
  - "8443:443"   # ホストポート 8443 をコンテナポート 443 (https) に転送

また、SSL 証明書をお持ちでない場合は、16 行目をコメントアウトしてください:

  #- "templates/web.ssl.template.yml"

- "templates/web.ssl.template.yml の行の前に # を追加してください。そうしないと Discourse が起動しません。

ステップ 4 - Discourse のセットアップ

ディレクトリを変更します:

cd /var/discourse

次に、Discourse を起動します(これがサービスの初回起動であるため、app.yml ファイルで行った新しい変更を反映してアプリケーションがブートストラップされます):

./discourse-setup

注意:有効なメールサーバー設定を入力してください。そうしないとセットアップが失敗する可能性があります。

ステップ 5 - Apache の設定

/etc/apache2/sites-available/forum.example.com.conf という名前の新しいファイルを作成し、以下の Vhost コンテンツを追加します:

<VirtualHost *:80>
  ServerName forum.example.com
  ServerAlias www.forum.example.com

  <IfModule proxy_module>
    ProxyPreserveHost on
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
  </IfModule>
</VirtualHost>
  • 以下のコマンドで Vhost を有効化します:
a2ensite forum.example.com
  • Mod Proxy を有効化します:
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_balancer
a2enmod lbmethod_byrequests
  • Apache を再起動します:
systemctl restart apache2

その後、ドメイン名から直接 Discourse にアクセスできるようになります。


注 1:Discourse のインストール中、app.yml が上書きされ、16 行目と 17 行目(SSL)のコメントアウトが解除されることがあります。その場合は、再度それらの行をコメントアウトし、アプリを再ビルドしてください(ディレクトリ変更を忘れないでください):./launcher rebuild app

注 2:このガイドでは Discourse に対して SSL は有効化されていません。当然ながら、Apache で既に Let’s Encrypt SSL を有効化している場合、それを Discourse でも有効化する方法に関するドキュメントは見当たりません。もし解決策を見つけた方がいらっしゃれば、ご連絡ください。

「いいね!」 4

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.