几个月前,我使用 apache、passenger 和 virtualhost 设置了一个 rails 应用程序,最终一切都运行正常。现在我试图在同一个盒子上托管另一个应用程序。我添加了新的虚拟主机(见下文 - app2),并编辑我的 hosts 文件以指向托管 IP(192.xx10),但是当我输入 app2.host.com 时,我得到的是 app1。此外,当我浏览到http://192.xx10我自动获取了 app1。这正常吗?
我的 httpd.conf 文件如下所示:
LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
PassengerRoot /var/lib/gems/1.8/gems/passenger-3.0.9
PassengerRuby /usr/bin/ruby1.8
<VirtualHost *:80>
ServerName app1.host.com
DocumentRoot /var/www/app1/public
<Directory /var/www/app1/public>
AllowOverride all
Options -MultiViews
</Directory>
ErrorLog /var/log/apache2/error.log
</VirtualHost>
<VirtualHost *:80>
ServerName app2.host.com
DocumentRoot /var/www/app2/public
<Directory /var/www/app2/public>
AllowOverride all
Options -MultiViews
</Directory>
ErrorLog /var/log/apache2/error.log
</VirtualHost>
我对此进行了大量研究,我所看到的一切似乎都表明我缺少了NameVirtualHost *:80
但是我已将其包含在我的 ports.conf 文件中。
我真的希望有人能帮助我。我在 Ubuntu 服务器上。
在此先感谢您提供的任何帮助。
答案1
检查第二个站点的 .htaccess,也许它正在覆盖您的 vhost 配置并将 Web 请求路由到前一个站点。