我正在尝试学习如何使用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
<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添加到我的hosts文件中,但我无法理解为什么;谁可以给我解释一下这个? ._。
答案 0 :(得分:1)
您不能在hosts文件中使用带有localhost的通配符。您必须在hosts文件中显式指定localhost的每个子域。如果您正在寻找替代方案,您可以购买域名并使用通配符将该域名指向127.0.0.1。您甚至可以更进一步,拥有一个骨架应用程序,通过映射路径将不同的子域指向不同的应用程序。