【发布时间】:2012-10-26 07:08:36
【问题描述】:
首先,我有一个功能齐全的 Apache2 服务器(在 Ubuntu 12.04 VPS 上)和多个工作虚拟主机(但这是我第一次尝试部署 Rails 站点),这毫无价值。此外,我尝试启动的 Rails 站点在我的本地 WEBRick 服务器上功能齐全。
我参考了各种在线说明,以使 Apache、Ruby、Rails 和 Passenger 能够很好地协同工作,包括:
- This from Linode, my host(他们不提供特定于 12.04 的文档)
- This from O'Reilly
- 作为
passenger-install-apache2-module安装过程一部分的乘客文档 - online Passenger documentation
- 各种旧的 SO 问题,例如 this 和 this
总结一下,到目前为止我已经:
- 已安装 Ruby(站点根目录中的
ruby -v返回 1.9.3)、RVM、Ruby Gems、Rails(应用文件夹中的rails -v返回 3.2.8,我可以在应用文件夹中启动rails server)和乘客(包括所有依赖项) -
按照
passenger-install-apache2-module的指示,我在/etc/apache2/apache2.conf的底部添加了以下几行:LoadModule passenger_module /var/lib/gems/1.8/gems/passenger 3.0.17/ext/apache2/mod_passenger.so PassengerRoot /var/lib/gems/1.8/gems/passenger-3.0.17 PassengerRuby /usr/bin/ruby1.8 -
创建并启用(在
/etc/apache2/sites-enabled/中列出)一个虚拟主机/etc/apache2/sites-available/foo.com,其中包含以下内容:<VirtualHost *:80> ServerName foo.com DocumentRoot /home/user/public/foo.com/public <Directory /home/user/public/foo.com/public> AllowOverride all Options -MultiViews </Directory> </VirtualHost> 已将我的 Rails 应用程序上传到
/home/user/public/foo.com/在
/home/user/public/foo.com/中做了一个bundle install在我的本地 OSX 机器上,我已将
xxx.xxx.xxx.xxx foo.com[VPS IP] 添加到/etc/hosts。重新启动 Apache
但是当我在浏览器中导航到 foo.com 时,我只看到了 /home/user/public/foo.com/public 的列表。此外,Apache error.log 中没有最近的条目。然而,每当我restart Apache 我得到:
* Restarting web server apache2
[Fri Oct 26 00:04:12 2012] [warn] module passenger_module is already loaded, skipping
... waiting [Fri Oct 26 00:04:13 2012] [warn] module passenger_module is already loaded, skipping
...done.
我希望我忽略了一些非常愚蠢的事情。任何帮助弄清楚那是什么都会非常非常感谢。谢谢!
【问题讨论】:
标签: ruby-on-rails passenger ubuntu-12.04 vps