Hallo zusammen!
Ich habe versucht, das Discourse-Forum über den Link im Admin-Panel zu aktualisieren, und habe diese Fehlermeldung erhalten. Das gesamte Forum ist verschwunden. Was soll ich jetzt tun, um das Update zurückzusetzen? Vielen Dank, wenn mir jemand helfen kann.
Tatsächlich bedeutet dies, dass Ihr Forum aktualisiert wird – es sei denn, Sie unterbrechen das Update, bevor es abgeschlossen ist.
Versuchen Sie, Ihr Forum unter https://yoursite.com/latest.json zu besuchen. Wenn etwas zurückgegeben wird, warten Sie 10 Minuten und prüfen Sie, ob sich das Problem von selbst löst.
Ich habe versucht, ./launcher rebuild app auszuführen, und folgende Fehlermeldungen erhalten:
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development' failed with return #<Process::Status: pid 340 exit 5>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development'"]}
6e9e60bd6b6113cdcb001127fd2a24fe86f2a1658bf24500e5e2b720fd793510
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
und ich bin nach oben gescrollt und habe einige mögliche Fehlerprotokolle gefunden:
1)200:M 25 Jun 2023 16:00:16.252 # Failed listening on port 6379 (TCP), aborting.
2)[DEPRECATED] The `--deployment` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local deployment 'true'`, and stop using this flag
[DEPRECATED] The `--without` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local without 'test development'`, and stop using this flag
3)Bundler::PathError: The path `/var/www/discourse/vendor/bundle/ruby/2.7.0/bundler/gems/sprockets-f4d3dae71ef2` does not exist.
4)Bundler::InstallError: sass-embedded-1.63.6-x86_64-linux requires rubygems version >= 3.3.22, which is incompatible with the current version, 3.2.18
Vielen Dank für Ihre Antwort, aber ich glaube, es ist nicht dasselbe Problem, mein Server ist in Deutschland. Ich benutze das Discourse-Docker-Image für meinen Server. Was soll ich tun, wenn ./launcher rebuild app nicht funktioniert?
Ich habe die Dokumente des letzten Programmierers für mich gelesen und darin steht, dass viele Dinge im Web hinter nginx laufen und Discourse ebenfalls hinter nginx gehostet werden muss. Die Standardinstallation funktioniert in meiner Situation nicht.
Und hier ist, wie er im Dokument sagte und wie er es tat:
Discourse läuft in einem Docker-Container. Es erfordert jedoch eine spezielle Konfiguration, nicht über eine docker-compose.yml oder eine .conf-Datei.
Das GitHub-Repository discourse-project/ zum Konfigurieren und Erstellen des Docker-Images finden Sie hier. Ignorieren Sie das nette und saftige “discourse-setup”-Programm, das sie anbieten, das wird hier nicht funktionieren. Wir müssen die App selbst konfigurieren.
Klonen Sie discourse_docker nach /var/discourse: git clone https://github.com/discourse/discourse_docker.git /var/discourse
Gehen Sie in den Ordner und verwenden Sie eine bereitgestellte Beispielkonfiguration: cd /var/discourse && cp samples/standalone.yml containers/app.yml
Bearbeiten Sie dann die Datei containers/app.yml (z. B. mit sudo nano)
Änderungen wurden am Hosting-Abschnitt, den SMTP-Einstellungen für E-Mails und – wichtig – am Expose-Abschnitt vorgenommen, sodass nur ein ungenutzter Port nach außen freigegeben wird.
Um Discourse unter einem Pfad wie “/forum” auszuführen, waren weitere Änderungen erforderlich, wie hier beschrieben.
Einige Probleme treten auch bei der E-Mail-Authentifizierung auf:
Die E-Mail, die E-Mails sendet, ist hier “server’s email”. Discourse erwartet jedoch, dass die E-Mail dieselbe Domain wie sein Host hat, nämlich “server’s email”.
Sie müssen wirklich alles auf eine neue VM mit einem unterstützten Betriebssystem verschieben. Sie müssen also auch alles andere, was Sie laufen haben, aufrüsten.
Hallo Jammy, nach mehrmaligen fehlgeschlagenen Installationen habe ich festgestellt, dass dies durch das Speicherlimit des Servers und das Netzwerk verursacht wurde. Ich schlage vor, dass Sie einen Server mit 4 GB Speicher verwenden und normalen Zugriff auf GitHub und Ruby haben.
Dieser Fehler stört mich – sehen Sie ihn immer noch? Der Docker-Container sollte jetzt 3.2.0 ausführen.
Aber wenn Ihr /var/discourse kein Git-Verzeichnis ist, wurde etwas getan, das von den Anweisungen abweicht. Es verhindert ein Update und verursacht die Diskrepanz bei der Ruby-Version. Bei mir:
/var/discourse# git status
On branch main
Your branch is up to date with 'origin/main'.
Wir sehen auch ein .git-Verzeichnis:
# ls -a /var/discourse/
. .github README.md cids discourse-setup launcher scripts tests
.. .gitignore bin containers image rebuild.log shared
.git LICENSE c discourse-doctor index.html samples templates
Bearbeiten: Aber es stimmt, wenn Sie ein zu altes Betriebssystem haben, müssen Sie etwas tun, um Discourse auf einem neuen Betriebssystem zu installieren und Ihr Backup wiederherzustellen, und auch alle zusätzlichen Dinge tun, die für Ihre spezielle Situation erforderlich sein könnten.
Wenn Ihr Server mehr tut, als nur Discourse auszuführen, ist das eine zusätzliche Komplikation. Möglicherweise benötigen Sie lokale Expertise.
Vielen Dank für Ihre Hilfe, ich werde Ihre Vorschläge nacheinander ausprobieren, um das Problem zu beheben. Wenn es Feedback gibt (gut oder schlecht), werde ich es im Forum posten. Nochmals vielen Dank!
Ich habe die neue Version von Discourse erfolgreich installiert. Ich habe einfach die Anweisungen im obigen Dokument befolgt und es hat für mich funktioniert. Aber jetzt habe ich Probleme, aus dem Backup wiederherzustellen.
Ich habe Restore a backup from the command line ausprobiert, aber Folgendes erhalten:
root@my_server:/var/www/discourse# discourse restore my_server-2023-06-20-033008-v20210922064213.tar.gz
Starting restore: my_server-2023-06-20-033008-v20210922064213.tar.gz
[STARTED]
'system' has started the restore!
Marking restore as running...
Making sure /var/www/discourse/tmp/restores/default/2023-06-29-113408 exists...
Copying archive to tmp directory...
Unzipping archive, this may take a while...
EXCEPTION: /var/www/discourse/lib/discourse.rb:137:in `exec': Failed to decompress archive.
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
/var/www/discourse/lib/discourse.rb:171:in `execute_command'
/var/www/discourse/lib/discourse.rb:137:in `exec'
/var/www/discourse/lib/discourse.rb:33:in `execute_command'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:78:in `decompress_archive'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:23:in `decompress'
/var/www/discourse/lib/backup_restore/restorer.rb:42:in `run'
script/discourse:149:in `restore'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/base.rb:485:in `start'
script/discourse:290:in `<top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `kernel_load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:492:in `exec'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:34:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:28:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:45:in `block in <top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:33:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Trying to rollback...
There was no need to rollback
Cleaning stuff up...
Removing tmp '/var/www/discourse/tmp/restores/default/2023-06-29-113408' directory...
Marking restore as finished...
Notifying 'system' of the end of the restore...
Finished!
[FAILED]
Restore done.