7

我正在尝试运行多个虚拟主机(?),例如:http:/localhost 将指向一个项目,http:/newsite 指向另一个项目,http:/myfavourite 再次指向不同的项目和不同的文档根目录。

(因为超链接发帖限制,这里每个http://都是http://)

我没有成功寻找在 /etc/apache2 中编辑 apache 文件的位置。我在寻找 vhosts 文件吗?

任何建议都会很棒,谢谢。

4

3 回答 3

9

这是一本电子书的一章,它解释了如何创建虚拟主机来精确地执行您想要的操作——示例使用的是 Ubuntu:使用 Apache 虚拟主机创建本地域

简单来说 :

  • 您首先需要创建 VirtualHost
  • 然后,您必须编辑您的主机文件(在 Linux 下,它是/etc/hosts),以便新的“伪域名”指向您的机器。

对于 VirtualHost,使用 Ubuntu,您将在 ; 中创建一个新文件/etc/apache2/sites-available/。例如命名your-site.com;它会包含这样的东西:

<VirtualHost *:80>
    ServerName your-site.com
    DocumentRoot /.../www/...

    <Directory /.../www/...>
        Options Indexes FollowSymLinks Includes
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

然后你注册这个文件,这样它就被 Apache 加载了,用这个命令:

sudo a2ensite your-site.com

然后,重新加载 Apache :

sudo /etc/init.d/apache2 reload


然后,您必须编辑 /etc/hosts 以添加如下行:

127.0.0.1       your-site.com

所以“your-site.com”实际上指向您自己的计算机。


重要的是用于在浏览器中访问您的网站的名称是在 hosts 文件中声明的名称;它还必须与 Apache 配置中的 ServerName 指令使用的相同。


当您为一个 VirtualHost 完成此操作时......其他所有的都是一样的:只有站点的名称,它是 DocumentRoot,改变。


希望这可以帮助!

于 2009-08-25T16:18:29.427 回答
4

您可以编辑 /etc/hosts 并添加多个指向 127.0.0.1 的名称,然后为每个名称添加 VirtualHost 条目。根据您的服务器,配置可能在 /etc/apache2/conf/httpd.conf 或 /etc/apache2/sites-available 中。如果是后者,那么是我为配置获得的第一个谷歌点击。

于 2009-08-25T16:17:36.837 回答
1

localhost 与 apache 无关,但它是您机器的别名(ip 127.xxx)。

你必须进行编辑/etc/hosts才能完成你想要的。

你为什么要那样做?http://localhost/newsite还不够吗?

于 2009-08-25T16:16:45.827 回答