Nun, es ist tatsächlich ein Netzwerkproblem, da mein Server in China ist.
Ich habe die Lösungen gefunden, hier sind sie auf Chinesisch:
Installation von Discourse in einer chinesischen Umgebunghttps://mypre.cn/2021/02/17/Discourcs-setup-on-cvm-ecs/
Die Versionsaktualisierung und -wartung von Discourse erfolgt über GitHub, und Discourse selbst ist in Ruby geschrieben.
Die Verwendung von CVM, Lightweight-Servern von Tencent Cloud und ECS von Alibaba Cloud birgt Probleme beim langsamen Zugriff auf ausländische Websites, hauptsächlich aufgrund von Ratenbegrenzungsoperationen zur Unterstützung chinesischer Git-Repositories.
Beim Klonen von Discourse, das auf GitHub gehostet wird, können Sie den Zugriff auf GitHub beschleunigen, indem Sie github.com im Klon-Link durch github.com.cnpmjs.org ersetzen. Zum Beispiel:
Ersetzen Sie git clone https://github.com/discourse/discourse_docker.git durch git clone https://github.com.cnpmjs.org/discourse/discourse_docker.git
Darüber hinaus installiert das Installationsprogramm beim Ausführen von ./discourse-setup auch einige zusätzliche Projekte in Docker.
Zum Beispiel: gem update erfordert ebenfalls das Hinzufügen eines Ruby-Spiegels.
Sie können die Ruby-Spiegeladresse durch Ändern der Konfigurationsdatei hinzufügen. Die Hauptdateien, die betroffen sind, sind docker.git
Darüber hinaus installiert das Installationsprogramm beim Ausführen von ./discourse-setup auch einige zusätzliche Projekte in Docker.
Zum Beispiel: gem update erfordert ebenfalls das Hinzufügen eines Ruby-Spiegels.
Sie können die Ruby-Spiegeladresse durch Ändern der Konfigurationsdatei hinzufügen. Die Hauptdateien, die betroffen sind, sind
discourse/templates/web.template.yml
discourse/containers/app.yml
Suchen Sie nach Stellen, an denen gem update in den oben genannten Dateien aufgerufen wird, und fügen Sie die folgende Anweisung zum Hinzufügen eines Spiegel-Websites hinzu:
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
gem update bundler
Für Bundles können Sie bundle config mirror.https://rubygems.org https://gems.ruby-china.com verwenden, um eine Spiegel-Website hinzuzufügen.
Hauptänderungen wie folgt:
diff --git a/templates/web.template.yml b/templates/web.template.yml
index 28fb22d..bb0010c 100644
--- a/templates/web.template.yml
+++ b/templates/web.template.yml
@@ -86,6 +86,9 @@ run:
cd: $home
hook: code
cmd:
+ - git remote -v
+ - git remote set-url origin https://github.com.cnpmjs.org/discourse/discourse.git
+ - gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
- git reset --hard
- git clean -f
- git remote set-branches --add origin master
@@ -145,6 +148,7 @@ run:
hook: web
cmd:
# ensure we are on latest bundler
+ - gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
- gem update bundler
- find $home ! -user discourse -exec chown discourse {} \\+
@@ -152,6 +156,9 @@ run:
cd: $home
hook: bundle_exec
cmd:
+ - su discourse -c 'gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/'
+ - su discourse -c 'gem update bundler'
+ - su discourse -c 'bundle config mirror.https://rubygems.org https://gems.ruby-china.com'
- su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test developme
- exec:
...skipping...
Probleme mit der E-Mail-Einrichtung
Foren benötigen normalerweise einen E-Mail-Server, um verschiedene Verifizierungs-Codes, Anmeldebenachrichtigungen oder Passwort-Wiederherstellungen und Benachrichtigungen zu senden.
Der kostenlose Unternehmens-E-Mail-Dienst von NetEase (ym.163.com) kann diese Anforderung erfüllen. Sie können auch den SMTP-Dienst von QQ-E-Mail aktivieren oder kostenpflichtige E-Mail-Dienste erwerben.
Der kostenlose Unternehmens-E-Mail-Dienst von NetEase aktiviert den SMTP-Dienst standardmäßig. Hier ist ein Beispiel für die Einstellung von app.yml: Discourse scheint keine Verbindungen mit SSL zu unterstützen, daher wird hier direkt der SMTP-Dienst verwendet. Beachten Sie, dass die start_tls-Funktion hier explizit deaktiviert werden muss.
DISCOURSE_SMTP_ADDRESS: smtp.ym.163.com
DISCOURSE_SMTP_PORT: 25
DISCOURSE_SMTP_USER_NAME: mail@getblog.cn
DISCOURSE_SMTP_PASSWORD: "password"
DISCOURSE_SMTP_ENABLE_START_TLS: false # (optional, default true)
DISCOURSE_SMTP_DOMAIN: getblog.cn # (required by some providers)
Darüber hinaus darf die E-Mail-Adresse des Website-Administrators nicht mit DISCOURSE_SMTP_USER_NAM identisch sein, da Sie sonst möglicherweise keine Registrierungs-E-Mails erhalten.
Wenn Sie sich in China befinden, müssen Sie eine Spiegelbeschleunigung durchführen. Suchen Sie den templates-Block in der Konfigurationsdatei und fügen Sie die chinesische Spiegelvorlage templates/web.china.template.yml hinzu:
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/sshd.template.yml"
- "templates/web.template.yml"
- "templates/web.china.template.yml"