apache基于域名虚拟主机配置(服务器中apache配置域名)
119
2022-11-28
本文目录一览:
修改hosts文件1不管你用的是什么系统,windows,mac,电脑上都会有一个hosts文件,修改这个文件,可以改变主机名所对应的ip地址。比如你安装了Web开发环境(MAMP或WAMP),启动环境以后,访问,访问的是这个虚拟主机的配置里DocumentRoot所指定的/Applications/MAMP/htdocs/hello这个目录里的东西,你可以在这个目录里面放点东西,比如一个WordPress或者Drupal的网站等等。注:配置虚拟主机的时候,第一个虚拟主机是默认的,你需要留着,配置自己的虚拟主机,可以从第二个开始配置,也就是第二段代码。
方法/步骤
1、首先修改C:\Windows\System32\drivers\etc目录下的
hosts
文件,用记事本打开,加入:
127.0.0.1
记得去掉前面的#
2、打开xampp\apache\conf\httpd.conf文件,搜索
“Include
conf/extra/httpd-vhosts.conf”,确保前面没有
#
注释符,也就是确保引入了
vhosts
虚拟主机配置文件。效果如下:
#
Virtual
hosts
Include
"conf/extra/httpd-vhosts.conf"
开启了httpd-vhosts.conf,默认a的httpd.conf默认配置失效(确保
httpd-vhosts.conf
文件里也开启了虚拟主机配置,见第3条),访问此IP的域名将全部指向
vhosts.conf
中的第一个虚拟主机。
3、在虚拟主机设置文件xampp\apache\conf\extra\httpd-vhosts.conf里设置:取消
NameVirtualHost
*:80
前面的
##,这样就启用了
vhosts.conf
,默认的httpd.conf默认配置失效。虚拟主机配置将只设置在httpd-vhosts.conf里。localhost
的目录默认配置记得也按此设置。
#
#
Use
name-based
virtual
hosting.
#
NameVirtualHost
*:80
#
#
VirtualHost
example:
#
Almost
any
Apache
directive
may
go
into
a
VirtualHost
container.
#
The
first
VirtualHost
section
is
used
for
all
requests
that
do
not
#
match
a
ServerName
or
ServerAlias
in
any
block.
#
ServerAdmin
postmaster@dummy-host.localhost
DocumentRoot
"I:/xampp/htdocs/"
ServerName
localhost
ServerAlias
localhost
ErrorLog
"logs/dummy-host.localhost-error.log"
CustomLog
"logs/dummy-host.localhost-access.log"
combined
ServerAdmin
postmaster@dummy-host1.localhost
DocumentRoot
"I:/xampp/htdocs/a"
ServerName
ServerAlias
ErrorLog
"logs/dummy-host1.localhost-error.log"
CustomLog
"logs/dummy-host1.localhost-access.log"
combined
ServerAdmin
postmaster@dummy-host2.localhost
DocumentRoot
"I:/xampp/htdocs/b/"
ServerName
ServerAlias
ErrorLog
"logs/dummy-host2.localhost-error.log"
CustomLog
"logs/dummy-host2.localhost-access.log"
combined
至此,XAMPP
的虚拟主机设置完毕,现在
访问
localhost
还是原来的
XAMPP
的帮助指南,访问
将指向到绑定的
a
目录,访问
将指向到绑定的
b
目录。
Apache 配置虚拟主机三种方式
一、基于IP
1. 假设服务器有个IP地址为192.168.1.10,使用ifconfig在同一个网络接口eth0上绑定3个IP:
[root@localhost root]# ifconfig eth0:1 192.168.1.11
[root@localhost root]# ifconfig eth0:2 192.168.1.12
[root@localhost root]# ifconfig eth0:3 192.168.1.13
2. 修改hosts文件,添加三个域名与之一一对应:
192.168.1.11
192.168.1.12
192.168.1.13
3. 建立虚拟主机存放网页的根目录,如在/www目录下建立test1、test2、test3文件夹,其中分别存放1.html、2.html、3.html
/www/test1/1.html
/www/test2/2.html
/www/test3/3.html
4. 在httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,接着在httpd-vhosts.conf中写入如下配置:
复制代码
VirtualHost 192.168.1.11:80
ServerName
DocumentRoot /www/test1/
Directory "/www/test1"
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
/Directory
/VirtualHost
VirtualHost 192.168.1.12:80
ServerName
DocumentRoot /www/test2/
Directory "/www/test2"
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
/Directory
/VirtualHost
VirtualHost 192.168.1.13:80
ServerName
DocumentRoot /www/test3/
Directory "/www/test3"
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
/Directory
/VirtualHost
复制代码
5. 大功告成,测试下每个虚拟主机,分别访问、、
二、基于主机名
1. 设置域名映射同一个IP,修改hosts:
192.168.1.10
192.168.1.10
192.168.1.10
2. 跟上面一样,建立虚拟主机存放网页的根目录
/www/test1/1.html
/www/test2/2.html
/www/test3/3.html
3. 在httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,接着在httpd-vhosts.conf中写入如下配置:
为了使用基于域名的虚拟主机,必须指定服务器IP地址(和可能的端口)来使主机接受请求。可以用NameVirtualHost指令来进行配置。 如果服务器上所有的IP地址都会用到, 你可以用*作为NameVirtualHost的参数。在NameVirtualHost指令中指明IP地址并不会使服务器自动侦听那个IP地址。 这里设定的IP地址必须对应服务器上的一个网络接口。
下一步就是为你建立的每个虚拟主机设定VirtualHost配置块,VirtualHost的参数与NameVirtualHost指令的参数是一样的。每个VirtualHost定义块中,至少都会有一个ServerName指令来指定伺服哪个主机和一个DocumentRoot指令来说明这个主机的内容存在于文件系统的什么地方。
如果在现有的web服务器上增加虚拟主机,必须也为现存的主机建造一个VirtualHost定义块。其中ServerName和DocumentRoot所包含的内容应该与全局的保持一致,且要放在配置文件的最前面,扮演默认主机的角色。
复制代码
NameVirtualHost *:80
VirtualHost *:80
ServerName *
DocumentRoot /www/
/VirtualHost
VirtualHost *:80
ServerName
DocumentRoot /www/test1/
Directory "/www/test1"
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
/Directory
/VirtualHost
VirtualHost *:80
ServerName
DocumentRoot /www/test2/
Directory "/www/test2"
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
/Directory
/VirtualHost
VirtualHost *:80
ServerName
DocumentRoot /www/test3/
Directory "/www/test3"
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
/Directory
/VirtualHost
复制代码
4. 大功告成,测试下每个虚拟主机,分别访问、、
三、基于端口
1. 修改配置文件
将原来的
Listen 80
改为
Listen 80
Listen 8080
2. 更改虚拟主机设置:
复制代码
VirtualHost 192.168.1.10:80
DocumentRoot /var/www/test1/
ServerName
/VirtualHost
VirtualHost 192.168.1.10:8080
DocumentRoot /var/www/test2
ServerName
/VirtualHost
Mac OS X自带apache,但是使用比较麻烦,你可以安装XAMPP。集成了apache和mysql与php环境。可以一键启动。
不
管你用的是什么系统,windows, mac,电脑上都会有一个 hosts 文件,修改这个文件,可以改变主机名所对应的 ip 地址。比如你安装了
Web 开发环境(MAMP 或 WAMP),启动环境以后,访问 你就会打开环境的默认的目录,这个
localhost 就是在 hosts 文件里定义的,它所指向的 ip 地址是 127.0.0.1 ,这个 ip
地址表示本地的你正在使用的这台电脑,了解详细的内容,可以搜索一下 :)
修改这个 hosts
文件,我们可以手工的去指定任何主机名指向任何的 ip 地址,当然这个设置只影响你自己的电脑,比如我们可以随便造一个域名,比如
hello.com,让这个域名指向你的电脑,也就是 127.0.0.1 这个 ip 地址。这样你在浏览器中请求 hello.com
,打开的就是你在本地电脑上搭建的环境所指定的目录里的东西。为了测试 apache
的虚拟主机功能,你可以去虚拟几个这样的域名,这样在创建虚拟主机的时候,你可以让这些域名打开各自的目录。下面,我们先去修改这个 hosts 文件。
1. 找到 hosts 文件,windows 系统是在 Windows\System32\Drivers\etc 这个目录下,Mac 系统是在 /etc/hosts ,找到以后可以使用文本编辑软件打开它。
2.
在 hosts 文件里,新的一行上,先输入 ip 地址 127.0.0.1 ,然后空格,再输入一个主机名,这个主机名可以随便,比如
hello.com ,这样访问 hello.com 就会打开在你的电脑上的网站了。另起一行,再去定义一条,127.0.0.1 hola.com 。
3.
保存修改之后的 hosts 文件,然后启动在本地上的 Web 环境,打开浏览器,在地址栏上输入 hello.com ,还有 hola.com
,看看打开的是不是你在本地上的内容。现在,你看到的应该跟你使用 打开的是一样的东西。
END
配置 Apache 虚拟主机
现
在,我们虚拟了两个域名,让它们指向了本地的电脑,访问它们,打开的是同一个目录里的内容,下面这个练习,我们通过修改 Apache
的配置文件,让访问不同域名的时候,打开的是不同的目录。你首先要判断一下配置 Apache 虚拟主机的配置文件,一般是在 httpd.conf
这个主配置文件里面,不过,很多环境都会单独把虚拟主机放在一个配置文件里面,然后在 httpd.conf
文件里指定一下,包含这个单独配置虚拟主机的文件。
1. 找到配置虚拟主机的配置文件,如果你用的是 WAMP 搭建的环境,先找到并打开
httpd.conf ,在这个文件里,搜索 # Virtual hosts ,它下面有一行代码, #Include
conf/extra/httpd-vhosts.conf... 你可以去掉它前面的 # ,这样,Apache
启动以后,也会去加载这个httpd-vhosts.conf 配置文件,这样做的好处就是可以保持 Apache
相关设置的整洁。当然,你完全可以在主配置文件 httpd.conf 里面去设置虚拟主机。
2. 打开 httpd-vhosts.conf 这个文件,没有这个文件也可以去创建一个,或者直接在 httpd.conf 文件里面去配置虚拟主机。配置虚拟主机的东西应该像这样:
3.
应该有两段这样的代码,每一段都是在配置一个虚拟主机,你可以复制其中的一段,然后粘贴到文件的最下面。再根据自己的需要去修改这段代码。理解它的意
思,ServerAdmin 就是网站的管理员的邮箱,DocumentRoot
是虚拟主机的主目录,也就是访问这个虚拟主机所打开的那个目录,这个目录你可以自己去指定,要注意的是,你需要先去创建这个目录,然后再在这里去指定这个
目录的位置。ServerName 是主机名,比如之前我们虚拟的那个主机名 hello.com,ServerAlias
是主机的别名,你可以指定一个其它的主机名,访问它的时候也会打开这个虚拟主机的目录里的东西。ErrorLog
是错误的日志,也就是发生错误的时候,会把错误记录到哪个文件里。CustomLog 是虚拟主机访问的日志。
这样自己新添加的虚拟主机看起来应该像这样:
3
4.
在浏览器里打开 hello.com ,访问的是这个虚拟主机的配置里 DocumentRoot 所指定的
/Applications/MAMP/htdocs/hello 这个目录里的东西,你可以在这个目录里面放点东西,比如一个 WordPress
或者 Drupal 的网站等等。
注:配置虚拟主机的时候,第一个虚拟主机是默认的,你需要留着,配置自己的虚拟主机,可以从第二个开始配置,也就是第二段 VirtualHost 代码。
1. 假设服务器有个IP地址为192.168.1.10,使用ifconfig在同一个网络接口eth0上绑定3个IP:
[root@localhost root]# ifconfig eth0:1 192.168.1.11
[root@localhost root]# ifconfig eth0:2 192.168.1.12
[root@localhost root]# ifconfig eth0:3 192.168.1.13
2. 修改hosts文件,添加三个域名与之一一对应:
192.168.1.11
192.168.1.12
192.168.1.13
3. 建立虚拟主机存放网页的根目录,如在/www目录下建立test1、test2、test3文件夹,其中分别存放1.html、2.html、3.html
/www/test1/1.html
/www/test2/2.html
/www/test3/3.html 需要虚拟主机租用可以看下,傲龙网络。
发表评论
暂时没有评论,来抢沙发吧~