配置迁移的rails应用程序。如何说服apache指向我的应用程序?

时间:2010-11-27 15:07:24

标签: ruby-on-rails apache

如何让Apache指向rails应用程序?我在/ var / www中有我的rails应用程序,我成功安装了passenger,ruby,rails,mysql。这是一个新服务器,我只是想将现有的生产轨道应用程序移动到它。我认为它可能是httpd.conf中的内容,但是在运行的服务器的conf中没有对应用程序的引用。

我愿意支持任何有帮助信息的人(评论或答案)。请不要把我驱逐到SF!

更新:

我已经用乘客线更新了我的httpd.conf:

LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.0/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.0
PassengerRuby /usr/local/bin/ruby

另外,我有一个与原始文件相同的vhosts文件:

<VirtualHost *:80>
   ServerAdmin admin@ourdomain.com
   DocumentRoot /var/www/tutorials/public
   ServerName tutorials.ourdomain.local
   ErrorLog logs/tutorials_error.log
   CustomLog logs/tutorials_access.log common
</VirtualHost>

UPDATE2:

我发现我可以通过注释掉welcome.conf的所有行来停止提供默认的apache页面。现在我得到403 fobidden页面“你没有权限访问/在这个服务器上”即使我chmod 777的app目录及其内容(和/ var / www)。

UPDATE3:

我发现我可以通过[ipaddress] /findex.html

访问默认的rails页面

2 个答案:

答案 0 :(得分:2)

您必须像这样编辑Apache配置文件:

LoadModule passenger_module /somewhere/passenger-x.x.x/ext/apache2/mod_passenger.so

PassengerRuby /usr/bin/ruby
PassengerRoot /somewhere/passenger/x.x.x
PassengerMaxPoolSize 10


<VirtualHost *:80>
    ServerName www.myapp.com
    DocumentRoot /www/myapp/public
    <Directory /www/myapp/public>
        Allow from all
    </Directory>
</VirtualHost>

有关Phusion Passenger users guide for Apache的更多信息。

答案 1 :(得分:0)

SELinux是罪魁祸首。 Setenforce 0,服务httpd restart证明了这一点。