先要在 lampp/etc/httpd.conf ( 这个是apache 总的配置文件)中,将虚拟路径的注释去掉。
#include etc/extra/httpd-vhosts.conf
使httpd-vhosts.conf文件起作用,或者直接在httpd.conf中写配置也可以,但不建议这么做。
相关的配置有:listen namevirtualhost <virtualhost>
1. listen 要监听的端口,多个端口,要写多个listen;否则apache启动的时候,不会启动相应的套接字。
比如
listen 80
listen 8080
2.namevirtualhost 如果没有这个,<virtualhost>标签就没什么作用。
(感谢okiwill的指正,这里特指基于域名访问的情况,若是基于ip访问的,以第一个指定ip的virtualhost为准,每个ip可以单独指定)
一个namevirtualhost 可以对用多个<virtualhost>,每个<virtualhost>必须有自己的namevirtualhost(我猜的)
namevirutalhost *:80
制定这个主机的ip和端口,如果服务器上有多个ip,就可以制定某个ip的某个端口是哪个 主机。
(新版的apache已经去除了namevirtualhost 这个配置,因为确实没什么用,参数在virtualhost中都已经指明了)
3 最关键的virtualhost
重要:apache 在接受到请求时,首先会默认第一个virtualhost,然后再找匹配的,如果没有匹配的,就是第一个virtualhost起作用。
因此在httpd.conf中,将<dicrectory />(这个是所有目录的默认配置)
和 <direcotry /opt/lampp/htdocs>的权限,都是deny from all.作为默认。
所以,我的第一个virtualhost是
<virtualhost *:80>
servername *
documentroot </opt/lampp/htdocs/guest>
<directory /opt/lampp/htdocs/guest>
order deny,allow
allow from all
</direcotry>
<virtualhost/>
后面的,依次添加就可以
<virtualhost *:80>
servername www.myweb1.com
documentroot </opt/lampp/htdocs/myweb1>
<directory /opt/lampp/htdocs/myweb1>
order deny,allow
allow from all
</direcotry>
<virtualhost/>
以上就是apache virtualhost配置的内容。