环境:
- OpenSUSE 11.4
- Apache 2.2.17
- 客运3.0.18
- ruby 1.8.7
- Rails 3.2.8
我已经在 apache 下安装了 RoR 应用程序 - ChiliProject
(但使用 Rails 2.3.14)并且工作正常。
它安装在 /chiliproject
中,在 httpd 配置中(实际上在默认服务器中,因为我没有虚拟主机)我有“RailsBaseURI/chiliproject/public”。
现在,我需要开发自己的应用程序(网络开发的第一次经验)。
“rails new hello_world”,Webrick 工作正常,但我想在 apache 下使用 CGI 运行它。我添加了“RailsBaseURI/hello_world/public”。但它不能正常工作。当我在索引页面上按“关于您的应用程序环境”时,它给我404“您正在查找的页面不存在。”。对于 Rails 中的任何路线,它都会给出错误 500 或 404。但是相同的路线和 Controller 在 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 一起使用,而且我原来的问题也没有消失。现在我已经恢复了一切(来自发行版存储库的 ruby 1.8.7,没有 RVM)。
最佳答案
如果你的 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
关于ruby-on-rails - Rails3、apache、乘客不工作。但rails2应用程序可以在相同的环境中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13463037/