Neptun
(MaT)
1
各位好,
希望有人能帮我解决我在安装过程中遇到的 bug,具体情况如下:
Debian 10
php 7.3.6
nginx
我参考了以下指南:
https://github.com/discourse/discourse/blob/master/docs/DEVELOPER-ADVANCED.md
但在每次进行数据库迁移时都会遇到以下错误。我也尝试过不同的版本,问题始终相同:
/var/www/discourse# RAILS_ENV=production bundle exec rake db:migrate
rake aborted!NoMethodError: undefined method `keys' for nil:NilClass/var/www/discourse/app/models/global_setting.rb:57:in `load_defaults'/var/www/discourse/config/application.rb:32:in `<top (required)>'/var/www/discourse/Rakefile:5:in `require'/var/www/discourse/Rakefile:5:in `<top (required)>'/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/ruby_executable_hooks:24:in `eval'/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/ruby_executable_hooks:24:in `<main>'
我也在网上搜索了其他指南或相关信息,但未能找到解决此错误的方法,也不清楚该如何继续安装。
我还尝试了 Docker 安装方式,该方式在设置阶段可以正常运行,但它与我使用的 ISPConfig 不兼容:在子域名下部署 Discourse 会出现部分功能异常,且在注册管理员账户后,向导无法继续,页面始终显示为空白。
提前感谢!
此致,
Mat
该指南旨在搭建开发环境,而非生产服务器。对于服务器,我们仅官方支持我们的 Docker 指南:discourse/docs/INSTALL.md at main · discourse/discourse · GitHub
我认为使用专为开发目的设计的指南在生产服务器上安装 Discourse 既不可靠,甚至可能无法实现。
或许您可以尝试解决 ISP 问题,或者尝试通过外部提供商托管 Discourse?
Neptun
(MaT)
3
感谢您的快速回复。
关于提到的“指南”,只是为了提供一个思路——正如我所说,我尝试过使用 Docker,但无法使其正常工作。
我已经设置了反向代理及其他相关配置。
初始设置没有问题,
但是,Discourse 在样式上出现异常,仅在管理员注册后显示空白页面,且向导无法启动或继续。我也检查了数据库以及 Ruby 应用,确认管理员账户是激活状态。
IspConfig 方面表示,这与他们的控制面板无关,问题出在 Discourse 本身;此外,Docker 也不受 IspConfig 支持。
我认为问题可能与 Nginx 的虚拟主机(vhost)设置有关,但我不清楚需要将哪些配置插入到 IspConfig 控制面板中(类似于 Plesk 的操作方式)。我也阅读了这里的帖子并尝试了多种方法,但仍未解决。
因此,我尝试不使用 Docker 进行安装,例如参考以下指南:Install Discourse Forum on Ubuntu 18.04 Without Docker
这样做并没有特殊之处,其流程与通过 Docker 默认安装类似。
我需要帮助的是:上述提到的数据库迁移过程中出现的错误究竟是什么?
我在网络上找不到任何相关信息。我希望将 Discourse 集成到我的 WordPress 网站中,用于评论及进一步的支持功能,这是最理想的方案。
如果您有任何关于如何让 Discourse 在 Docker 与 IspConfig 环境下正常运行的建议,那也非常完美。这是我自己的服务器,我可以自由配置。
唯一的问题是:我必须在安装 Discourse 之前先安装 IspConfig,因为 IspConfig 需要一个干净的服务器环境以确保 100% 正常运行。如果先安装带 Docker 的 Discourse,再尝试安装 IspConfig 及其他组件,是无法实现的。
提前感谢您的帮助。
pfaffman
(Jay Pfaffman)
4
请查看 Run other websites on the same machine as Discourse - #281
要让其在 ISPConfig 上运行可能非常困难,甚至无法实现。如果您希望将 Discourse 与 ISPConfig 一起使用,建议直接向 ISPConfig 寻求支持。
Neptun
(MaT)
5
我尝试了帖子“在同一台机器上运行其他网站与 Discourse”中的方法,试图在 Docker 环境中使其运行,但经过数小时的努力仍未成功。
我现在最后的想法是放弃 Docker,因为 ISPConfig 不支持 Docker,但我需要帮助解决以下错误信息:
/var/www/discourse# RAILS_ENV=production bundle exec rake db:migrate
rake aborted! NoMethodError: undefined method `keys’ for nil:NilClass
/var/www/discourse/app/models/global_setting.rb:57:in load_defaults'/var/www/discourse/config/application.rb:32:in <top (required)>‘/var/www/discourse/Rakefile:5:in require'/var/www/discourse/Rakefile:5:in <top (required)>’/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rake-12.3.2/exe/rake:27:in <top (required)>'/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/ruby_executable_hooks:24:in eval’/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/ruby_executable_hooks:24:in `’
我尝试过 2.4 beta 版本(该版本也可通过 Docker 安装),以及 GitHub 上的其他多个发布版本。
提前感谢!
pfaffman
(Jay Pfaffman)
6
Discourse 社区不支持 ISPConfig。
在生产环境中运行开发版安装绝不会有好结果。每月只需 5 美元,你就可以租用一个 DigitalOcean Droplet(或类似服务),它能正常工作。