嗨!
我在一台安装了 Apache 的 Ubuntu 18.04 服务器上运行。我想在不同端口上安装 Discourse,然后通过 Apache 的反向代理使其可通过 URL 访问。我尝试创建了一个 app.yml 文件并修改了其中的设置,然后运行了:./launcher rebuild app。整个过程一切顺利,直到最后出现“失败”错误,具体如下:
FAILED
Pups::ExecError: cd /var/www/discourse && su discourse -c ‘bundle exec rake themes:update assets:precompile’ 失败,返回状态为 #<Process::Status: pid 3801 exit 134>
失败位置:/pups/lib/pups/exec_command.rb:112:in `spawn’
exec 失败,参数为 {“cd”=>“$home”, “hook”=>“assets_precompile”, “cmd”=>[“su discourse -c ‘bundle exec rake themes:update assets:precompile’”]}
2beda643ff51279f145c96cdede83a1d6b65f67e00225be74100c8fb9fe3f790
** 引导失败 ** 请向上滚动查看之前的错误信息,可能不止一条。
./discourse-doctor 可能有助于诊断问题。
我尝试使用 discourse-doctor,但它没有提供任何有用信息。有人知道如何解决这个问题吗?另外,我使用 Apache 是因为我觉得它更容易使用,并且我对 Apache 更有经验。因此,切换到 Nginx 不是一个选项。
以下是失败部分之前的部分日志:
MaxMind IP 数据库更新需要许可证
请将 DISCOURSE_MAXMIND_LICENSE_KEY 设置为在 https://www.maxmind.com 生成的许可证密钥
MaxMind IP 数据库更新需要许可证
请将 DISCOURSE_MAXMIND_LICENSE_KEY 设置为在 https://www.maxmind.com 生成的许可证密钥
98765.375844045 正在压缩:vendor-9297d3b5d396b76cde3e1a19c960cf10c5edf8be99b1f5aeff21012e3ae57a34.js
terser ‘/var/www/discourse/public/assets/_vendor-9297d3b5d396b76cde3e1a19c960cf10c5edf8be99b1f5aeff21012e3ae57a34.js’ -m -c -o ‘/var/www/discourse/public/assets/vendor-9297d3b5d396b76cde3e1a19c960cf10c5edf8be99b1f5aeff21012e3ae57a34.js’ --source-map “base=‘/var/www/discourse/public/assets’,root=‘/assets’,url=‘/assets/vendor-9297d3b5d396b76cde3e1a19c960cf10c5edf8be99b1f5aeff21012e3ae57a34.js.map’”
<— 最后几次垃圾回收 —[3798:0x4872980] 2679 ms: Scavenge 108.1 (126.5) → 97.8 (129.8) MB, 9.0 / 0.0 ms (平均 mu = 1.000, 当前 mu = 1.000) 分配失败
[3798:0x4872980] 2823 ms: Scavenge 111.4 (129.8) → 101.3 (132.8) MB, 8.4 / 0.0 ms (平均 mu = 1.000, 当前 mu = 1.000) 分配失败
[3798:0x4872980] 2964 ms: Scavenge 114.8 (133.0) → 104.8 (135.3) MB, 32.7 / 0.0 ms (平均 mu = 1.000, 当前 mu = 1.000) 分配失败<— JS 堆栈跟踪 —>
致命错误:NewSpace::Rebalance 分配失败 - JavaScript 堆内存不足
1: 0xa89e60 node::Abort() [node]
2: 0x9ade29 node::FatalError(char const*, char const*) [node]
3: 0xc7583e v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [node]
4: 0xc75bb7 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [node]
5: 0xe3f6d5 [node]
6: 0xe7ec67 [node]
7: 0xe90b11 v8::internal::MarkCompactCollector::CollectGarbage() [node]
8: 0xe4c9d8 v8::internal::Heap::MarkCompact() [node]
9: 0xe4e368 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node]
10: 0xe5190c v8::internal::Heap::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node]
11: 0xe157da v8::internal::NewFillerObject(int, bool, v8::internal::AllocationType, v8::internal::AllocationOrigin) [node]
12: 0x116d5e8 v8::internal::Runtime_AllocateInOldGeneration(int, unsigned long*, v8::internal::Isolate*) [node]
13: 0x15045f9 [node]
中止(核心转储)
rake 中止!
Errno::ENOENT: 没有那个文件或目录 @ rb_file_s_size - /var/www/discourse/public/assets/vendor-9297d3b5d396b76cde3e1a19c960cf10c5edf8be99b1f5aeff21012e3ae57a34.js
/var/www/discourse/lib/tasks/assets.rake:293:insize' /var/www/discourse/lib/tasks/assets.rake:293:inblock (4 levels) in ’
/var/www/discourse/lib/tasks/assets.rake:182:inblock in concurrent?' /var/www/discourse/lib/tasks/assets.rake:284:inblock (3 levels) in ’
/var/www/discourse/lib/tasks/assets.rake:273:ineach' /var/www/discourse/lib/tasks/assets.rake:273:inblock (2 levels) in ’
/var/www/discourse/lib/tasks/assets.rake:182:inconcurrent?' /var/www/discourse/lib/tasks/assets.rake:270:inblock in ’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.6/exe/rake:27:in<top (required)>' /usr/local/bin/bundle:23:inload’
/usr/local/bin/bundle:23:in `’
任务:TOP => assets:precompile
(通过运行任务并添加 --trace 参数查看完整跟踪)
I, [2021-07-21T16:25:26.467914 #1] INFO – : 正在下载 MaxMindDB…
正在压缩 JavaScript 并生成源映射I, [2021-07-21T16:25:26.469702 #1] INFO – : 正在终止异步进程
I, [2021-07-21T16:25:26.469947 #1] INFO – : 向 HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 56 发送 INT 信号
I, [2021-07-21T16:25:26.470157 #1] INFO – : 向 exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 174 发送 TERM 信号
2021-07-21 16:25:26.470 UTC [56] LOG: 收到快速关闭请求
174:signal-handler (1626884726) 收到 SIGTERM 信号,计划关闭…
2021-07-21 16:25:26.473 UTC [56] LOG: 中止任何活动事务
174:M 21 Jul 2021 16:25:26.473 # 用户请求关闭…
174:M 21 Jul 2021 16:25:26.474 * 在退出前保存最终的 RDB 快照。
2021-07-21 16:25:26.479 UTC [56] LOG: 后台工作进程 “logical replication launcher” (PID 65) 以退出代码 1 退出
174:M 21 Jul 2021 16:25:26.480 * 数据库已保存到磁盘
2021-07-21 16:25:26.480 UTC [60] LOG: 正在关闭
174:M 21 Jul 2021 16:25:26.480 # Redis 现在准备退出,再见…
2021-07-21 16:25:26.515 UTC [56] LOG: 数据库系统已关闭
谢谢,
Kian