首先,我有一个功能齐全的 Apache2 服务器(在 Ubuntu 12.04 VPS 上)和多个工作虚拟主机(但这是我第一次尝试部署 Rails 站点),这毫无价值。此外,我尝试启动的 Rails 站点在我的本地 WEBRick 服务器上功能齐全。
我参考了各种在线说明,让 Apache、Ruby、Rails 和Passenger 一起玩得很好,包括:
- 这来自我的主机 Linode(他们不提供特定于 12.04 的文档)
- 这是来自 O'Reilly
- 作为安装过程一部分的乘客文件
passenger-install-apache2-module
- 在线乘客文件
- 诸如this和this之类的各种旧SO问题
总而言之,到目前为止,我已经:
- 已安装 Ruby(
ruby -v
在站点根目录中返回 1.9.3)、RVM、Ruby Gems、Rails(rails -v
在 app 文件夹中返回 3.2.8,我可以rails server
在 app 文件夹中启动)和 Passenger(包括所有依赖项) 按照指示
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/
做了
bundle install
一个/home/user/public/foo.com/
在我的本地 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.
我希望我忽略了一些非常愚蠢的事情。任何帮助弄清楚那是什么都会非常非常感谢。谢谢!