【问题标题】:Ruby Passenger displays content from public instead of the appRuby Passenger 显示来自公共而不是应用程序的内容
【发布时间】:2013-06-14 01:22:52
【问题描述】:

我在云中有一台服务器。我已经设置了一台带有 Apache2 + Passenger 的 Linux 机器(安装了 apache 模块)。
我已经按照书上的内容进行了配置,按照乘客说明设置了 VirtualHost。
我在“RubyMine”(在本地机器上)中创建了一个默认的 Ruby on Rails 项目,并与服务器同步。
这是项目文件层次结构:

因为说明要求我将配置文件指向 /projectFolder/public,所以我这样做了。如果公用文件夹中没有 index.html,则会引发错误,如果我创建一个,则会在访问链接时显示它。
但是当我在本地机器上部署它时,它会从 app->views->layouts 启动应用程序。
如何让它在远程服务器上运行我的红宝石代码?我的红宝石“应用程序”?

【问题讨论】:

  • 能否请您包含您的虚拟主机配置?
  • @ChrisHeald 根没有看到导轨。我也安装在 root 用户上,现在它可以工作了。
  • 更正:看起来更像是 RubyMine 问题。当我使用 rails 命令创建它时效果很好,但是当我复制由 RubyMine 创建的文件时,它会跳转到公用文件夹,这是因为我阅读的内容出现错误。

标签: ruby-on-rails ruby linux web passenger


【解决方案1】:

第一次尝试:

sudo passenger-status 

这应该会显示乘客是否已加载以及应用程序组。如果一切正常,请从 /public 中删除 index.html 并重新启动 apache。

【讨论】:

  • 它说应用程序组:/var/www#default:应用程序根目录:/var/www。那是我的项目文件夹所在的位置。打开页面时仍然报错。
  • 有人在github上提出了类似的问题,应该安装libv8-dev。我安装了它,它现在没有给我一个错误,但它显示公共文件夹中的 404.html。
  • 可能我必须使用“rails”命令运行服务器,或者它应该通过 apach2 像这样运行?可能我必须写路线(我没有写任何)?
  • 我设法通过安装 libv8-dev(然后还有 node.js)解决了我的第一个问题。第二个问题有点奇怪。我在登录服务器的用户上安装了所有东西。现在我转移到 root 用户并安装了 rails 和 RVM 并且“神奇地”它开始工作了。在根目录上它没有轨道,而在我登录的用户上它有......有趣但它有效,所以我想它很好:)
猜你喜欢
  • 2018-06-03
  • 1970-01-01
  • 2019-10-10
  • 2012-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多