2012-03-18 76 views
1

我在linode上使用Ubuntu 10.04,并且安装了apache2和Rails 3.2.2。我的应用程序工作正常上example.com:3000Phusion乘客 - 安装后我究竟做了些什么?

我按照说明在此处安装的Phusion乘客:

http://www.modrails.com/install.html 

这里:

http://wiki.brightbox.co.uk/docs:rvm 

但我不知道如何真正在生产模式下在example.com上运行我的应用程序。我输入的命令是做什么的?我做'轨道服务器'或'rails server -p 80'吗?我使用的是什么命令?

编辑1:

我的虚拟主机文件位于

<VirtualHost *:80> 
ServerAdmin [email protected] 
ServerName example.com 
ServerAlias www.example.com 
DocumentRoot /srv/www/example.com/public_html/ 
ErrorLog /srv/www/example.com/logs/error.log 
CustomLog /srv/www/example.com/logs/access.log combined 

<Directory /srv/www/example.com/public_html/> 
    AllowOverride all 
    Options -Multiviews 
</Directory> 
</VirtualHost> 

有一两件事我不知道的是我是否应该有一个目录

/srv/www/example.com/public_html/ 

/srv/www/example.com/public/ 

的的Linode安装指南说明了第一种方法(http://library.linode.com/web-servers/apache/installation/ubuntu-10.04-lucid),但Passenger说明了第二种方法。只要一致,它是否重要?

我的乘客模块位如下所示在/ etc/apache2的/ MODS的可用:

在passenger.conf

PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p125/gems/passenger-3.0.11 
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p125/ruby 

在passenger.load

LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p125/gems/passenger-3.0.11/ext/apache2/mod_passenger.so  

编辑2:我现在已将乘客模块位添加到apache配置文件,而不是乘客.conf和passenger.load文件。我设置以下这个工作:

配置/环境/ production.rb ... config.assets.compile =真 ...

回答

1

安装过程(例如,passenger-install-apache2-module部分)在最后给出了你需要做什么的说明。

的主旨是使虚拟主机,比如说,/etc/apache2/sites-available/myapp的应用程序,看起来是这样的:

<VirtualHost *:80> 
    ServerName example.com 
    ServerAlias *.example.com 
    DocumentRoot /path/to/app/public 

    PassengerMinInstances 2 
    PassengerPoolIdleTime 600 
    PassengerUserSwitching on 
    PassengerDefaultUser someuser 

    RailsBaseURI/

    <Directory "/path/to/app/public"> 
    FileETag none 
    Options All 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
    </Directory> 
</VirtualHost> 

确保你把乘客模块位在适当的位置按照说明进行操作。下面是我的样子:

$ cat /etc/apache2/mods-available/passenger.* 
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.11 
PassengerRuby /usr/local/bin/ruby 

LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.11/ext/apache2/mod_passenger.so 

然后你只需做平常apache的东西:

sudo a2ensite myapp 
sudo /etc/init.d/apache2 reload 

假设example.com点,这台机器,你要善于去。

+0

好的谢谢,看来我已经完成了上述所有。我认为它必须是虚拟主机步骤的问题,因为/ public_html和/ public – Zakoff 2012-03-18 13:22:37

+0

之间的差异我更新了指向myapp /公用文件夹的路径。但是,我在主页上看到的所有默认文件都是与rails一起提供的,它的索引是/,然后是一个404.html 500.html的列表等。我如何做最后一步来确保它能够拾取我的根页面呢? – Zakoff 2012-03-18 13:41:58

+0

您是否删除了'public/index.html'? – rfunduk 2012-03-18 16:35:23