Apache 虚拟机设置
apache虚拟机有两种设置方法:
基于主机名的虚拟主机(一个IP地址,多个网站)
基于IP地址的虚拟主机(每个站点拥有一个的独立IP地址)
可能很多人没有多个静态ip,也没有多个域名,也没有线上的服务器。我也没有。不过我们还是可以在本机实现apache的虚拟机设置的。下面我们要用到的ip是 127.0.0.1, 127.0.0.2。域名是localhost, localhost2, localhost3
打开 /etc/hosts
在后面添加
127.0.0.1 localhost2
127.0.0.2 localhost3
windows的系统是修改 C:\WINDOWS\system32\drivers\etc\hosts 文件
这一步需要重启一下机器。先重启了再进行下边的操作。重启后 localhost2和localhost3就可以指向各住的ip了。
打开apache配置文件。一般是在 /etc/httpd/conf/httpd.conf 或者你指定的目录。windows的系统是在apache安装目录的conf文件夹里
在最后添加
NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
ServerAdmin deng5765@163.com
DocumentRoot /home/webroot/website1
ServerName localhost
</VirtualHost>
<VirtualHost 127.0.0.1:80>
ServerAdmin deng5765@163.com
DocumentRoot /home/webroot/website2
ServerName localhost2
</VirtualHost>
<VirtualHost 127.0.0.2:80>
ServerAdmin deng5765@163.com
DocumentRoot /home/webroot/website3
ServerName localhost3
</VirtualHost>
其中DocumentRoot要改成和自己机子相符的路径。然后务必重启apache才可以生效。 service httpd restart 重启apache。然后用localhost localhost2 和 localhost3 就可以访问各住的目录了。
其中 NameVirtualHost 127.0.0.1:80 是需要的,否则会出现这样的警告提示:VirtualHost 127.0.0.1:80 overlaps with VirtualHost 127.0.0.1:80, the first has precedence, perhaps you need a NameVirtualHost directive
如果需要一个虚拟机绑定多个域名,则可以在别名 ServerAlias 后面全部列出来。还可以通过 php_admin_value open_basedir 限制各自虚拟机可操作文件的目录。同时可以通过 ErrorDocument 404 设置404错误页面的位置。其他配置就不多说了,可以参考apache手册。
-----------------------------------------
附:Apache 下虚拟主机的简单配置
1.首先查看本机的ip地址是什么
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:F9:F3:03
inet addr:192.168.0.55 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fef9:f303/64 Scope:Link
我的本机ip是192.168.0.55
2. 打开apache的配置文件
# vi /etc/httpd/conf/httpd.conf
在配置文件的第三部分
### Section 3: Virtual Hosts
的最后边加上
NameVirtualHost 192.168.0.55:80
<VirtualHost 192.168.0.55:80>
DocumentRoot /var/www/html/www.hoteel.com/
ServerName www.hoteel.com
</VirtualHost>
注意:我们要建立的虚拟主机的域名是www.hoteel.com ,它是在/var/www/html/www.hoteel.com/下。
按说,我们修改过配置文件后应该重起httpd服务,但是如果现在我们重起,系统肯定会提示我们找不到var/www/html/www.hoteel.com/这个文件夹,因为它确实不存在,我们现在就建立它。
3. 我们要给这个虚拟主机添加管理用户 hoteel 。
# useradd -d /var/www/html/www.hoteel.com/ hoteel
修改 /var/www/html/www.hoteel.com/的权限是o能r + w.
# chmod a+rx /var/www/html/www.hoteel.com/
现在就配置好了,一台简单的虚拟主机。重起httpd协议(#service httpd restart)我们可以通过URL直接访问http://www.hoteel.com.
4. 我们回到windows下,在地址栏里边输入 http://www.hoteel.com,发现它没有显示出来我们先要看到的网站,这是因为我们的主机没有解析 http://www.hoteel.com 这个域名。
我们需要更改一个文件:C:\WINDOWS\system32\drivers\etc下的hosts文件,我们用记事本把它打开,然后另起一行写上 192.168.0.55 www.hoteel.com 然后保存。重起httpd
#service httpd restart 就可以了。如果没出来,就刷新吧。
浙公网安备 33010602011771号