2

环境:

  • OpenSUSE 11.4
  • 阿帕奇 2.2.17
  • 乘客 3.0.18
  • 红宝石 1.8.7
  • 导轨 3.2.8

我已经在 apache 下安装了 RoR 应用程序 - ChiliProject(但使用 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)。

4

1 回答 1

5

如果您的 webbrick 可以正常工作,请对您的 apache 配置文件进行重大更改。

我使用 bitnami RubyStack 和下面的配置没有任何问题:

<VirtualHost *:80>
    ServerName www.myhostname.com
    DocumentRoot /home/bitnami/app_name/public  
    RailsEnv development
    <Directory /home/bitnami/app_name/public>
        Allow from all
        Options -MultiViews
    </Directory>
</VirtualHost>

我的乘客版本:

:~$sudo passenger-config --root
/opt/bitnami/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.17

请检查乘客是否正在运行:

:~$sudo passenger-status

----------- General information -----------
max      = 6
count    = 2
active   = 0
inactive = 2
Waiting on global queue: 0

----------- Application groups -----------
/home/bitnami/app_1:
  App root: /home/bitnami/app_1
  * PID: 4972    Sessions: 0    Processed: 24      Uptime: 33h 38m 14s

/home/bitnami/app_2:
  App root: /home/bitnami/app_2
  * PID: 24538   Sessions: 0    Processed: 1682    Uptime: 296h 14m 44s
于 2012-11-19T22:34:00.113 回答