2012-04-22 65 views
4

我从http://httpd.apache.org/download.cgi下载了apache2.2.22 src并进行了安装。安装工作正常。但是当我尝试添加虚拟主机时会出现问题。我添加了2个虚拟主机 1. localhost 2. someother.localhost 两者都指向不同的文档根目录,但是解析为第一个虚拟主机的doc根目录。Apache vhost解析为localhost文件根目录

hereis我的虚拟主机文件,

了NameVirtualHost *:80

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot "/webserver/htdocs" 
    ServerName localhost 
    ErrorLog "logs/localhost-error_log" 
    CustomLog "logs/localhost-access_log" common 
</VirtualHost> 
<Directory /home/sourabhn/somepath> 
    Options FollowSymLinks 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
</Directory> 
<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot "/home/sourabhn/somepath" 
    ServerName someother.localhost 
    ErrorLog "logs/someother-localhost-error_log" 
    CustomLog "logs/someother-localhost-access_log" common 
</VirtualHost> 

我已经在hosts文件中的相应条目。我运行的是Ubuntu 11.10机器。请您提出宝贵的建议回到

回答

2

马上我注意到你的文件与我从bobpeers这样的网络教程拼凑在一起的文件之间的区别。我在虚拟主机块中添加了<Directory>块。

NameVirtualHost *:80 
<VirtualHost *:80> 
DocumentRoot /var/www/ 
ServerName xtiansimonslaptop.local 
    <Directory "/var/www/"> 
     Allow from all 
     Options +Includes +Indexes +FollowSymLinks 
     AllowOverride all 
    </Directory> 
</VirtualHost> 

我正在使用Drupal,只是我可以得到一个名称解析到Drupal目录,它会照顾其余的。在Drupal安装中,我有几个项目,每个项目都有一个Drupal installtion中的自己的域名。下面是一个名为hello.local的Drupal站点的示例,另一个Drupal站点可以是cheese.local。都指向同一个目录。

<VirtualHost *:80> 
    DocumentRoot /var/www/php/drupal7 
    ServerName hello.local 
# ServerAlias *.hello.local 
     <Directory "/var/www/php/drupal7"> 
      Allow from all 
      Options +Includes +Indexes +FollowSymLinks 
      AllowOverride all 
     </Directory> 
</VirtualHost> 

现在它的工作保存为注释行ServerAlias。这引出了我学习设置虚拟主机的另一点。/etc/hosts文件对于正确设置很重要。

在例如通过bobpeers你会看到他们的主人填写例,

ServerName bobpeers.live 
ServerName bobpeers.dev 

我期望的反向名称live.bobpeers.local是一个服务器名的更清晰的例子。这是事情 - 我发现在例子中存在不一致。一些示例根本不使用关键术语,如.local或遵循通用签名sub-domain.domaon.com。复制一个人非正常的例子,你可能会认为上面的ServerName引用了两个虚拟主机live.local和dev.local。就我所知,也许他们是这样做的!

vHosts还有一件事。该名男子页显示了这个,

127.0.0.1  localhost 
    192.168.1.10 foo.mydomain.org  foo 
    192.168.1.13 bar.mydomain.org  bar 

对我的本地沙箱什么的工作原理是,

127.0.0.1 localhost 
    127.0.0.1 mydomain.local   mydomain 
    127.0.0.1 foo.mydomain.local  foo 
    127.0.0.1 bar.mydomain.local  bar 

因为基于名称应该是这一切梳理,而不是这个192.168.1这似乎是正确的。 x IP掩码废话。 (^_^)