嗨,这是我的第一篇帖子,希望你能耐心地了解我的新手技能:P
我尝试使用 NameVirtualHost 配置我的 apache2 服务器 (ubuntu)。目前,我有 3 个域指向我的静态 IP:domain1.dyndns.org、domain2.com、domain3.com
我希望 domain2.com 和 domain3.com 被配置为指向其特殊目录的虚拟主机。所有其他 HTTP 请求(如访问我的路由器 (domain1.dyndns.org:8080) 远程)都将指向 domain1.dyndns.org 并从那里访问。
目前,我在重新启动 apache 服务器时遇到一个问题,我看不到问题所在,请注意我没有启用默认文件,只有 domain2.com 和 domain3.com,如果我启用默认文件,其他域将指向我的 www 目录,我仍然不明白问题所在:
/etc/init.d/apache2 restart
* Restarting web server apache2
[Wed Jul 06 13:16:24 2011] [warn] _default_ VirtualHost overlap on port 80, the first has precedence
... waiting [Wed Jul 06 13:16:26 2011] [warn] _default_ VirtualHost overlap on port 80, the first has precedence
这是我现在的配置:
端口.conf:
Listen 80
Listen 443
/站点可用/默认:
<VirtualHost _default_:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
/站点可用/domain2.com:
<VirtualHost *:80>
ServerName domain2.com
ServerAlias www.domain2.com
ServerAdmin [email protected]
DocumentRoot /var/www/domain2.com/
<Directory /var/www/domain2.com/>
Order Deny,Allow
Allow from all
# Don't show indexes for directories
Options -Indexes
</Directory>
</VirtualHost>
/Sites-available/domain3.com:
<VirtualHost *:80>
ServerName domain3.com
ServerAlias www.domain3.com
ServerAdmin [email protected]
DocumentRoot /var/www/domain3.com/
<Directory /var/www/domain3.com/>
Order Deny,Allow
Allow from all
# Don't show indexes for directories
Options -Indexes
</Directory>
</VirtualHost>
答案1
在您的/etc/apache2/ports.conf
文件中确保有一个名称虚拟主机语句。这告诉 Apache 它应该在指定的 IP 地址或所有地址*
和端口上期待虚拟主机。
NameVirtualHost *:80