运行多个虚拟主机

我想在我的服务器上运行多个(目前只有两个域)。 我已经改变了两个域名服务器指向我的服务器。

在apache2.conf文件中,我启用了“包含网站启用”。

我的ports.conf文件如下所示

NameVirtualHost *:80 Listen 80 Listen 443 <VirtualHost xx.xx.xx.xx:443> SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem SSLCertificateKeyFile /etc/apache2/ssl/apache.key ServerAdmin [email protected] ServerName firstDomain.com DocumentRoot /var/www/ ErrorLog /var/log/error.log CustomLog /var/log/access.log combined </VirtualHost> 

这是我的主页的设置。

我的httpd.conf文件看起来像这样

 ServerName firstDomain.com <VirtualHost xx.xx.xx.xx:80> ServerAdmin [email protected] ServerName firstDomain.com DocumentRoot /var/www/ ErrorLog /var/log/error.log CustomLog /var/log/access.log combined </VirtualHost> <VirtualHost *:80> ServerName secondDomain.com ServerAlias *.secondDomain.com DocumentRoot /home/user/www/secondDomain.com/htdocs </VirtualHost> Options -Indexes All FollowSymLinks MultiViews 

最后但并非最不重要的我的“secondDomain”文件中的“site-avaiable”

 <VirtualHost secondDomain.com> ServerAdmin [email protected] ServerName secondDomain.com # Indexes + Directory Root. DirectoryIndex index.html DocumentRoot /home/user/www/secondDomain/htdocs/ # CGI Directory ScriptAlias /cgi-bin/ /home/user/www/seoncDomain/cgi-bin/ <Location /cgi-bin> Options +ExecCGI </Location> # Logfiles ErrorLog /home/user/www/secondDomain/logs/error.log CustomLog /home/user/www/secondDomain/logs/access.log combined </VirtualHost> 

我也收到错误信息,每当我重新启动apache服务器,说VirtualHosts xx.xx.xx.xx:80与VirtualHosts xx.xx.xx.xx:80重叠。

当我打电话给我的secondDomain.com只有firstDomain.compopup。 这似乎是映射是错误的。

apachectl -t输出:

 [warn] VirtualHost xx.xx.xx.xx:80 overlaps with VirtualHost xx.xx.xx.xx:80, the first has precedence, perhaps you need a NameVirtualHost directive Syntax OK 

apache2ctl -S输出:

 [Wed Feb 29 02:05:17 2012] [warn] VirtualHost xx.xx.xx.xx:80 overlaps with VirtualHost xx.xx.xx.xx:80, the first has precedence, perhaps you need a NameVirtualHost directive VirtualHost configuration: 127.0.0.1:* secondDomain.com (/etc/apache2/sites-enabled/secondDomain.com:1) xx.xx.xx.xx:443 firstDomain.com (/etc/apache2/ports.conf:12) xx.xx.xx.xx:80 firstDomain.com (/etc/apache2/httpd.conf:3) wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost default server secondDomain.com (/etc/apache2/httpd.conf:11) port 80 namevhost secondDomain.com (/etc/apache2/httpd.conf:11) port 80 namevhost firstDomain.com (/etc/apache2/sites-enabled/000-default:1) port 80 namevhost firstDomain.com (/etc/apache2/apache2.conf:241) port 80 namevhost secondDomain.com (/etc/apache2/apache2.conf:249) Syntax OK 

WordPress通过apt-get安装。 我在/ var / www /中有一个符号链接,它指向/ usr / share / wordpress,并在/ etc / apache2 / sites-available和a2ensite中激活。

你有一个NameVirtualHost指令,但是你没有使用它。 你在<VirtualHost>声明中指定IP地址和/或主机名 – 这不是你想要的。

更改:

 <VirtualHost xx.xx.xx.xx:80> 

 <VirtualHost secondDomain.com> 

要简单:

 <VirtualHost *:80> 

你可以尝试下一步:

  1. 将firstDomain.com虚拟主机声明移至sites-available / firstDomain
  2. 从httpd.conf中删除所有的东西(你可以尝试在apache2.conf中定义ServerName
  3. 确保将sites-available / firstDomainsites-available / secondDomain分别链接到启用网站的/ firstDomainsites-enabled / secondDomain