【发布时间】:2012-11-07 22:04:57
【问题描述】:
环境:
- OpenSUSE 11.4
- Apache 2.2.17
- 乘客 3.0.18
- Ruby 1.8.7
- Rails 3.2.8
我已经在 apache - ChiliProject 下安装了 RoR 应用程序(但使用的是 rails 2.3.14),它工作正常。
它安装在 /chiliproject 和 httpd 配置中(实际上是在默认服务器中,因为我没有虚拟主机)我有“RailsBaseURI /chiliproject/public”。
现在,我需要开发自己的应用程序(网络开发的第一次经验)。
“rails new hello_world”,Webrick 工作正常,但我想用 CGI 在 apache 下运行它。我添加了“RailsBaseURI /hello_world/public”。但它不能正常工作。当我在索引页面上按“关于您的应用程序环境”时,它给了我 404“您要查找的页面不存在。”。对于 rails 中的任何路由,它都会给出错误 500 或 404。但是相同的路由和控制器可以在 webrick 上正常工作。即使我将 ChiliProject 放入 /hello_world 也可以。这意味着问题不在于 apache 或乘客。
日志中没有 apache/passenger 错误,只有 404 或 500。我尝试了“rails 2.4.13 new hello_world”,但它给了我很多错误,简单的谷歌搜索并不能解决所有问题他们。所以,我不能轻松地使用 rails 2.4.13 创建一个新项目,该项目可以与另一个应用程序正常工作,我认为它没有帮助。
我在 ruby 网站上看到 1.8.7 可能会导致 rails3 崩溃。之后,我花了 4 个小时研究 RVM 和不同的 ruby 版本。毕竟,ChiliProject(甚至是最新版本)不适用于 ruby 1.9,我原来的问题也没有消失。现在我把所有东西都回来了(来自发行版的 repo 的 ruby 1.8.7,没有 RVM)。
【问题讨论】:
-
我不确定,但我认为 Rails 3.2 需要 ruby 1.9.2 或更高版本。但首先,如果您在“Hello world”,请暂时使用标准的 Rails 服务器 (webrick)。有很多东西要学,你有大约 20 种不同的事情可能会出错——把小组件隔离出来,你会变得更好(你也可以写出比 Stack Overflow 上的人更具体的问题实际上可以回答:-)。
-
我尝试了 Ruby 1.9.3 - 没有任何改变
-
我知道这个不好的问题,但我不能说得更具体。也许你可以帮我问一些具体的问题。如果您认为 webrick 现在更好 - 好的,但我需要在我的应用程序中使用 CGI 脚本(与守护程序和硬件通信)。您能否指点我教程如何在 webrick 中启用 CGI 执行?
-
忘记 CGI。 Webrick(“Rails 服务器”)是一款用于开发的优秀 Web 服务器。 Apache 或 NGinx 是生产中使用的常见 Web 服务器。两者都提供允许连接的模块,包括 Phusion Passenger(两者都可以使用)。有很多组合,但我的主要观点是你需要从一个小的、具体的问题、你尝试过的内容和具体的错误开始。否则你会从那些告诉你阅读手册之类的胡思乱想的人那里得到答案。
标签: ruby-on-rails apache passenger