自3.2.1以来,我在每个操作中都遇到500错误

使用 3.2.3 版本时,当我尝试发布主题、编辑主题、批准帖子等操作时,会出现以下错误:

2024-07-06T00:39:23.066901838Z NoMethodError (undefined method `trusted_users_can_edit_others?’ for SiteSetting:Class)

我还遇到了这个错误:

24-07-06T00:39:24.067196373Z ActionView::Template::Error (undefined method `escape_uri' for UrlHelper:Class)
2024-07-06T00:39:24.067198898Z lib/plugin/instance.rb:541:in `block in on'
2024-07-06T00:39:24.067201202Z lib/discourse_event.rb:12:in `block in trigger'
2024-07-06T00:39:24.067203586Z lib/discourse_event.rb:12:in `trigger'
2024-07-06T00:39:24.067205881Z lib/pretty_text.rb:484:in `excerpt'
2024-07-06T00:39:24.067208165Z app/models/post.rb:523:in `excerpt'

我在 CapRover 上使用 Bitnami 3.2.3 Discourse 安装。
我没有安装任何插件,但启用了 RO 语言环境。

我尝试了所有镜像(3.2.1、3.2.2、3.3.3),但仍然出现相同的错误。其他一切似乎都可以正常工作,并且在 3.2 更新之前一切都运行良好。

如果需要,这是完整的堆栈跟踪:

2024-07-06T01:01:05.331159453Z Completed 500 Internal Server Error in 287ms (ActiveRecord: 0.0ms | Allocations: 46431)
2024-07-06T01:01:05.331163440Z NoMethodError (undefined method `escape_uri' for UrlHelper:Class)
2024-07-06T01:01:05.331167227Z lib/plugin/instance.rb:541:in `block in on'
2024-07-06T01:01:05.331170603Z lib/discourse_event.rb:12:in `block in trigger'
2024-07-06T01:01:05.331173679Z lib/discourse_event.rb:12:in `trigger'
2024-07-06T01:01:05.331176945Z lib/pretty_text.rb:484:in `excerpt'
2024-07-06T01:01:05.331180312Z app/models/post.rb:523:in `excerpt'
2024-07-06T01:01:05.331183558Z app/models/post.rb:532:in `excerpt_for_topic'
2024-07-06T01:01:05.331186833Z lib/post_creator.rb:506:in `update_topic_stats'
2024-07-06T01:01:05.331190089Z lib/post_creator.rb:196:in `block in create'
2024-07-06T01:01:05.331193455Z lib/post_creator.rb:390:in `block in transaction'
2024-07-06T01:01:05.331197323Z lib/post_creator.rb:390:in `transaction'
2024-07-06T01:01:05.331200789Z lib/post_creator.rb:188:in `create'
2024-07-06T01:01:05.331203995Z lib/new_post_manager.rb:318:in `perform_create_post'
2024-07-06T01:01:05.331207261Z lib/new_post_manager.rb:252:in `perform'
2024-07-06T01:01:05.331215837Z app/controllers/posts_controller.rb:201:in `create'
2024-07-06T01:01:05.331219554Z app/controllers/application_controller.rb:423:in `block in with_resolved_locale'
2024-07-06T01:01:05.331223071Z app/controllers/application_controller.rb:423:in `with_resolved_locale'
2024-07-06T01:01:05.331226587Z lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
2024-07-06T01:01:05.331229904Z lib/content_security_policy/middleware.rb:12:in `call'
2024-07-06T01:01:05.331233230Z lib/middleware/anonymous_cache.rb:393:in `call'
2024-07-06T01:01:05.331236506Z lib/middleware/gtm_script_nonce_injector.rb:10:in `call'
2024-07-06T01:01:05.331239702Z config/initializers/008-rack-cors.rb:14:in `call'
2024-07-06T01:01:05.331242908Z config/initializers/100-quiet_logger.rb:20:in `call'
2024-07-06T01:01:05.331246204Z config/initializers/100-silence_logger.rb:29:in `call'
2024-07-06T01:01:05.331249290Z lib/middleware/enforce_hostname.rb:24:in `call'
2024-07-06T01:01:05.331252456Z lib/middleware/request_tracker.rb:236:in `call'

然后你可以向他们寻求支持。如果你想在这里获得帮助,你需要进行标准安装。

3 个赞

我最初检查过,安装指南似乎很长(所以我选择了 CapRover 上提供的“一键安装”)。

有没有一种简单的方法可以用标准安装替换 Bitnami 安装?(同时保留当前的数据库/帖子/用户)?

您应该能够进行备份并将其恢复到新服务器。Dashboard.literatecomputing.com 将执行自动标准安装。您可以加入免费试用组并免费使用,但安装过程的免费支持非常有限。

1 个赞

不幸的是,标准安装对我不起作用,因为它要求 Discourse 镜像中提供 Docker。我已经在使用 Coolify 来管理我的容器了,所以如果我将 git 仓库复制到该容器中,我将不得不在 Docker 容器中安装 Docker 才能使其工作。

我将尝试使用 https://hub.docker.com/r/discourse/base 来使其工作,但这需要 Launcher,这意味着我无法在不进行 Docker-ception 的情况下,在隔离的 Docker 容器中完全安装 Discourse……

编辑:我也尝试使用这个 https://github.com/discourse/discourse_docker/blob/master/image/base/Dockerfile,但它也不起作用(而且该文件似乎已过时/未维护)。

> [24/50] RUN /tmp/install-nginx:
53.52 objs/addon/static/ngx_http_brotli_static_module.o \
53.52 objs/ngx_modules.o \
53.52 -Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now -ldl -lpthread -lpthread -lcrypt -L/tmp/ngx_brotli/deps/brotli/c/../out -lbrotlienc -lbrotlicommon -lm -lpcre -lssl -lcrypto -ldl -lpthread -lz \
53.52 -Wl,-E
53.55 /usr/bin/ld: cannot find -lbrotlienc
53.55 /usr/bin/ld: cannot find -lbrotlicommon
53.55 collect2: error: ld returned 1 exit status
53.55 make[1]: *** [objs/Makefile:324: objs/nginx] Error 1
53.55 make[1]: Leaving directory '/tmp/nginx-1.21.0'
53.55 make: *** [Makefile:13: install] Error 2
58 |
59 | ADD install-nginx /tmp/install-nginx
60 | >> RUN /tmp/install-nginx
61 |
62 | RUN apt -y install advancecomp jhead jpegoptim libjpeg-turbo-progs optipng
--------------------
ERROR: failed to solve: process "/bin/sh -c /tmp/install-nginx" did not complete successfully: exit code: 2
1 个赞

回滚到 Docker 镜像 bitnami/discourse:3.0.6 可以修复 500 错误,并且我可以再次创建帖子。我将暂时停留在该版本,并在新版本发布时再次尝试。

我希望 Discourse 很快能提供一个可用的 Docker 镜像,可以简单地安装,而无需使用其他脚本或工具。

您可以关闭此主题。