我注册了多个域名。我想使用私有虚拟服务器上的单个 Apache 服务器托管它们。我知道这是可行的,只需更改 httpd.conf 和(可能是 /etc/hosts)即可,但我找不到任何有关如何实际执行此操作的信息。
有人能解释一下执行此操作所需的步骤吗?例如,假设我有以下可用的名称:
- 示例1.com
- example2.com
- example3.com
我该如何设置 Apache 服务器以便它能提供来自上述域的页面?
顺便说一句,我在 Ubuntu Linux(Lucid Lynx [10.04 LTS])上运行 Apache 2.2。
答案1
答案2
编辑 apache 配置 => httpd.conf
添加以下几行:
#if you are listening in the port 80, enable the virtual host
NameVirtualHost *:80
#DocumentRoot is the folder where the actual web site resides, where the html and php files are.
#Directory => this instruction is for setting the permissions, de directory index, etc.
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "C:/mywebsites/example1"
ServerName example1.com
ServerAlias www.example1.com
<Directory "C:/mywebsites/example1">
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "C:/mywebsites/example2"
ServerName example2.com
ServerAlias www.example2.com
<Directory "C:/mywebsites/example2">
DirectoryIndex index.html
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "C:/mywebsites/example3"
ServerName example3.com
ServerAlias www.example3.com
<Directory "C:/mywebsites/example3">
DirectoryIndex default.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
您可能已经意识到,我运行的是 Windows,但 Unix 也一样。有关更多信息,请阅读 Apache 配置中的 DocumentRoot、VirtualHost 和 Directory 指令。
所有这些的作用是,如果有人向 apache 服务器请求 example2.com,Apache 将使用 index.html 作为索引来处理来自 C:/mywebsites/example2 的请求。但需要询问 apache(要有礼貌……)我的意思是,您必须更改您的 dns 以将此网站指向 apache 正在监听的 NIC IP 地址。
在我的计算机 Windows 中,我使用主机文件,如下所示:
example1.com 127.0.0.1
www.example1.com 127.0.0.1
example2.com 127.0.0.1
www.example2.com 127.0.0.1
因为我已经在 httpd.conf 中设置了这个指令
Listen 80
问候
亚历克斯