apache虚拟主机就是一个以VirtualHost为打头每个网站可以是一个VirtualHost,这样一个服务器就可以有多网站了,同时NameVirtualHost 可以指定IP也可以不指定为星号,这样就可以绑定双线IP了.
一直使用xampp做apache服务器,可是新版的xampp添加了虚拟主机就访问127.0.0.1也跳转到了虚拟主机去了,比如:我添加了www.phpfensi.com,路径是e:wwwdemo,而我的添加完之后,访问127.0.0.1竟然也是跑到了www.phpfensi.com下面去.
上网找了好多资料说是添加localhost的,于是在httpd.conf最后添加如下配置,代码如下:
- <VirtualHost *>
- DocumentRoot E:www
- ServerName 127.0.0.1
- # ErrorLog logs/default-error_log
- </VirtualHost>
-
- <Directory "E:www">
- Options Indexes FollowSymLinks Multiviews
- AllowOverride All
- Order Allow,Deny
- Allow from all
- </Directory>
发现还是不行,继续查找,期间安装了PHPnow,也是类似的情况,后来无意中看到了NameVirtualHost这个配置,于是写成了:
NameVirtualHost *
重启apache竟然可以了,记录下,防止下次踩坑.
下面看一个实践实例:Linux(包括 CentOS Linux),是使用最广的 Linux 服务器,大量的网站应用都部署在其上.
1. 打开文件 /etc/httpd/conf/httpd.conf,搜索 VirtualHost example,找到代码如下:
- #
- # VirtualHost example:
- # Almost any Apache directive may go into a VirtualHost container.
- # The first VirtualHost section is used for requests without a known
- # server name.
- #
- #<VirtualHost *:80>
- # ServerAdmin webmaster@dummy-host.example.com
- # DocumentRoot /www/docs/dummy-host.example.com
- # ServerName dummy-host.example.com
- # ErrorLog logs/dummy-host.example.com-error_log
- # CustomLog logs/dummy-host.example.com-access_log common
- #</VirtualHost>
2. 仿照例子,添加一段代码来指定某一域名的网站,代码如下:
- #
- # DocumentRoot 是网站文件存放的根目录
- # ServerName 是网站域名, 需要跟 DNS 指向的域名一致
- #
- <VirtualHost *:80>
- ServerAdmin webmaster@dummy-host.example.com
- DocumentRoot /var/www/httpdocs/demo_neoease_com
- ServerName www.phpfensi.com
- ErrorLog logs/demo.neoease.com-error.log
- CustomLog logs/demo.neoease.com-access.log common
- </VirtualHost>
3. 重启 httpd 服务,执行以下语句.
service httpd restart |