3

我正在尝试学习如何使用 Ruby On Rails 开发 Web 应用程序,但我遇到了一个愚蠢的错误。我正在尝试使用 Phusion Passenger aka mod_rails 来使用 Apache 而不是 WEBrick;我已经通过 gem 安装了模块并运行

sudo passenger-install-apache2-module

命令安装乘客;然后我编辑了 http.conf 文件添加

LoadModule passenger_module /Users/Stopped/.rvm/gems/ruby-1.9.3-p327/gems/passenger-3.0.19/ext/apache2/mod_passenger.so
PassengerRoot /Users/Stopped/.rvm/gems/ruby-1.9.3-p327/gems/passenger-3.0.19
PassengerRuby /Users/Stopped/.rvm/wrappers/ruby-1.9.3-p327/ruby

添加了虚拟主机

<VirtualHost *:80>
    ServerName rails.local
    DocumentRoot "/Users/Stopped/RoR/prova/public"
    <Directory /Users/Stopped/RoR/prova/public>
        AllowOverride all
        Options -MultiViews
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

使用 sudo apachectl restart 重新启动了 Apache 但它不起作用:( 如果我在 localhost 中查找,我会看到“它有效!”页面,但如果我进入 rails.local,则没有我的 Rails 应用程序 :(

乘客已装载

Apache/2.2.22 (Unix) Phusion_Passenger/3.0.19 DAV/2 PHP/5.4.9 Server at localhost Port 80

有任何想法吗?

PS:这是“apachectl -S”输出

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server rails.local (/private/etc/apache2/extra/httpd-vhosts.conf:53)
         port 80 namevhost rails.local (/private/etc/apache2/extra/httpd-vhosts.conf:53)
Syntax OK

解决方案

嗯...我解决了它,将 127.0.0.1 rails.local 添加到我的主机文件中,但我不明白为什么;谁可以给我解释一下这个?._.

4

1 回答 1

1

您不能在主机文件中使用通配符和 localhost。您必须在主机文件中为 localhost 明确指定每个子域。如果您正在寻找替代方案,您可以购买一个域名并使用通配符将该域名指向 127.0.0.1。您甚至可以更进一步,拥有一个骨架应用程序,通过映射路由将不同的子域指向不同的应用程序。

于 2013-04-30T03:52:12.193 回答