apache虚拟主机配置过程问题解决

五月 04, 2019 | views
Comments 0

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最后添加如下配置,代码如下:

  1. <VirtualHost *> 
  2.     DocumentRoot E:www 
  3.     ServerName 127.0.0.1 
  4. #    ErrorLog logs/default-error_log 
  5. </VirtualHost> 
  6.  
  7. <Directory "E:www"
  8.     Options Indexes FollowSymLinks Multiviews 
  9.     AllowOverride All 
  10.     Order Allow,Deny 
  11.     Allow from all 
  12. </Directory> 

发现还是不行,继续查找,期间安装了PHPnow,也是类似的情况,后来无意中看到了NameVirtualHost这个配置,于是写成了:

NameVirtualHost * 

重启apache竟然可以了,记录下,防止下次踩坑.

下面看一个实践实例:Linux(包括 CentOS Linux),是使用最广的 Linux 服务器,大量的网站应用都部署在其上.

1. 打开文件 /etc/httpd/conf/httpd.conf,搜索 VirtualHost example,找到代码如下:

  1. # VirtualHost example: 
  2. # Almost any Apache directive may go into a VirtualHost container. 
  3. # The first VirtualHost section is used for requests without a known 
  4. # server name. 
  5. #<VirtualHost *:80> 
  6. #    ServerAdmin webmaster@dummy-host.example.com 
  7. #    DocumentRoot /www/docs/dummy-host.example.com 
  8. #    ServerName dummy-host.example.com 
  9. #    ErrorLog logs/dummy-host.example.com-error_log 
  10. #    CustomLog logs/dummy-host.example.com-access_log common 
  11. #</VirtualHost> 

2. 仿照例子,添加一段代码来指定某一域名的网站,代码如下:

  1. # DocumentRoot 是网站文件存放的根目录 
  2. # ServerName 是网站域名, 需要跟 DNS 指向的域名一致 
  3. <VirtualHost *:80> 
  4.     ServerAdmin webmaster@dummy-host.example.com 
  5.     DocumentRoot /var/www/httpdocs/demo_neoease_com 
  6.     ServerName www.phpfensi.com 
  7.     ErrorLog logs/demo.neoease.com-error.log 
  8.     CustomLog logs/demo.neoease.com-access.log common 
  9. </VirtualHost> 

3. 重启 httpd 服务,执行以下语句.

service httpd restart



zend