在Apache2中托管多个域 - 如何?

时间:2012-08-31 08:31:00

标签: wordpress apache2 virtual hosts

虽然我已经找到了有关stackoverflow的相关文章,但我已经看到了我尝试过的各种建议,但我仍然遇到问题,所以这就是我发布这个的原因。

我有一个涉及DNS,Debian,Apache2和Wordpress的问题。我一直在努力解决这个问题已经有一段时间了,并且无法解决这个问题。我目前的结论是,有关于我的dns和apache虚拟主机定义的内容“,但是,正如我所说,我很不确定。

这就是我的配置:

  • 由moniker.com托管的“我拥有”的两个域名 - 让我们称之为domaina和domainb
  • 使用Debian,apache2和wordpress的托管vps。 vps有ip x.y.z.t
  • 每个域都定义了三个“A”记录:'*','@'和'www'
  • 启用了URL重写(a2enmod重写)
  • 安装了Wordpress,并为下面的virtualhost指令中指定的两个文档目录的wordpress目录创建了链接

'domaina'和'domainb'都指向我的vps,这是正常的。但是,我无法解决的问题是让vps处理“多个虚拟主机”。我以为我可以通过在Apache中使用虚拟主机来处理这个问题。为此,我在/ etc / apache2 / sites-available下定义了两个站点,如下所示:

(文件:/etc/apache2/sites-available/domaina.com)

<VirtualHost x.y.z.t:80>
ServerName domaina.com
ServerAdmin me@domaina.com
DocumentRoot /var/www/domaina.com
DirectoryIndex index.php
<Directory /var/www/domaina.com/>
  AllowOverride all
  Order deny,allow
  Allow from all
</Directory>
</VirtualHost>

(文件:/etc/apache2/sites-available/domainb.com)

<VirtualHost x.y.z.t:80>
ServerName domainb.com
ServerAdmin me@domainab.com
DocumentRoot /var/www/domainb.com
DirectoryIndex index.php
<Directory /var/www/domainb.com/>
  AllowOverride all
  Order deny,allow
  Allow from all
</Directory>
</VirtualHost>

现在,当我尝试从Web浏览器处理上述站点时,我最终会在默认的apache目录中使用在浏览器中呈现的index.html文件,而不是到达两个不同的wordpress配置。我对“VirtualHosts”和/或DNS配置的思考显然有问题......

我忘了提到我已经加载了/etc/unit.d/apache2重启...抱歉......

坦率地说,我迷失在这里,对此的任何帮助都将非常感激。

干杯

2 个答案:

答案 0 :(得分:0)

如果您确实重启了apache并且仍然无法正常工作,请回复,因为我遇到过与Apache类似的问题,尤其是在让虚拟主机工作时。我意识到你在Debian上运行与WAMP不同,但这是我在打开一个新的虚拟主机时所做的。

首先我将域添加到Windows系统32驱动程序等主机文件,它允许内联网 127.0.0.1 domainname ,这会阻止网址查看网页。

然后我必须将corret目录添加到www / 您的文件夹

在根文件夹内,应该有一个名为vhosts的目录, 我必须使用其中的虚拟主机的文件名来创建conf文件的空实例,以便您对 httpd-vhosts.conf 所做的更改有效。

所以你需要做的是找到 wamp / bin / apache / Apache2.2.21 / conf / extra / httpd-vhosts 确保你拥有conf / axtra和没有conf / orginal。

<VirtualHost *:80>

DocumentRoot "c:/wamp/www/**name of the folder**"

ServerName **as_inserted_in_hosts** 

<directory "c:/wamp/www//**name of the folder**">

Options Indexes FollowSymLinks

AllowOverride all

Order Deny,Allow

Deny from all

Allow from 127.0.0.1

</directory>

</VirtualHost>

保存。 Apache停止所有服务,我还必须在Windows中重新启动运行Intranet的服务,以更新对hosts文件的更改,然后重新启动apache。

这是我必须这样做的,当我从Apache打开localhost时,它允许我看到虚拟主机下显示的链接以及项目下显示的目录。

看一下本教程...... Explains how to set up virtual hosts

答案 1 :(得分:0)

你的apache2.conf中有NameVirtualHost指令吗?你需要它来启用虚拟主机。它可以放在apache2.conf或apache2.conf包含的任何文件中。在我的服务器上,我已经在ports.conf中找到了它。

NameVirtualHost *:80

请参阅http://httpd.apache.org/docs/2.2/vhosts/name-based.html#using