搭建环境:windows+VMware(Ubuntu)+apache2.(同一IP,不同域名)
1:在VMware的虚拟机Ubuntu下安装apache2(怎么安装百度一下就能找到);
2: apache2的相关配置文件在/etc/apache2下
apache2.conf 是全局配置文件,也是主配置文件
conf.d 一般性的配置
envvars 存放环境变量
httpd.conf 用户配置文件
mods-available 已安装的可用模块
mods-enabled 已启用的模块
ports.conf httpd服务的端口号
sites-available 可用的虚拟主机
sites-enabled 启用的虚拟主机
3:关于虚拟主机,参照 http://baike.baidu.com/view/7383.htm?fr=ala0_1_1;
4:开始虚拟机的配置:apache2的默认访问路径是 /var/www,在/etc/apache2/sites-available/000-default.conf文件中可以看到
ServerAdmin localhost
DocumentRoot /var/www
sites-availeable中的是网站配置文件,sites-enable 中是指向 sites-availeable 的链接(先不要管)。
5:新建虚拟文件:在/var/www文件夹下新建两个文件夹:a和b,在a文件夹下新建a.html,b中新建b.html。作为访问时的服务目录。
6:先在/etc/apache2/sites-available文件夹中新建两个文件 test_a.conf 和 test_b.conf(文件后缀名参见 /etc/apache2/apache2.conf配置文件中的 IncludeOptional mods-enabled/*.conf)。
在终端(Ctrl+Alt+T进入)输入 sudo gedit /etc/apache2/sites-available/test_a.conf ;进入编辑文件:
参照000-default.conf的内容(复制内容后修改红色部分即可):
test_a.conf:
<VirtualHost 192.168.238.2>
ServerAdmin ******@******
DocumentRoot /var/www/a
ServerName www.test_a.com
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/a>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/wperror.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
test_a.conf:将 /var/www/a 修改为 /var/www/b, www.test_a.com 修改为 www.test_b.com.
DocumentRoot:为访问目录;ServerName :为访问的域名。
7:到这里虚拟主机的配置完成了,刚才提到 sites-enable 文件夹下存放的是访问 sites-availeable 的链接,所以刚刚新建的 test_a.conf he test_b.comf 同样的建立连接:
在终端输入: sudo a2ensite test_a.conf 和 sudo a2ensite test_b.conf 。进入sites-enable文件夹下可以看见多了两个链接文件。
8: 启动apache :sudo /etc/init.d/apache2 start ,
我们在ubuntu虚拟机中打开浏览器,输入 192.168.238.2,看看能否打开(一般是不行的,还没分配IP地址);
进入终端,输入 sudo ifconfig eth0:1 192.168.238.2 ,
再次启动 apache,浏览器输入 192.168.238.2,有了吧!!
那么输入域名试试: www.test_a.com 或者 www.test_b.com 没反应??
修改hosts文件: 终端输入 sudo gedit /etc/hosts 加入
192.168.238.2 www.test_a.com
192.168.238.2 www.test_b.com
再次在浏览器中访问:www/test_a.com 进入我们新建的 /var/www/a 文件夹下;同样 www.test_b.com 进入 /var/www/b 文件夹下。
9:在宿主机(Windows中访问):
(1):首先在cmd 终端 输入 ping 192.168.238.2 试试看能否拼通。(能ping通的话,在windows中的浏览器中打开 192.168.238.2 试试看能否看到什么)。
(2):不能ping通的话就要关闭ubuntu的防火墙:在ubuntu终端输入: sudo ufw disable (关闭防火墙)(http://blog.sina.com.cn/s/blog_483e43060101p603.html)。
再次在浏览器中输入 192.168.238.2 能看到了吧!!!
(3):域名访问,想要在windows中通过域名访问新建的虚拟主机(www.test_a.com 和 www.test_b.com)则需要设置hosts。
windows中的位置是 C:\Windows\System32\drivers\etc 文件夹下手动打开是不能修改的,具体修改方案是:
在windows开始中找到记事本,点击右键--->以管理员身份运行,在打开的记事本中选择 文件-->打开,找到 C:\Windows\System32\drivers\etc 文件夹下的hosts文件 打开,在其中添加两行:
192.168.238.2 www.test_a.com
192.168.238.2 www.test_b.com 保存!
最后在浏览器中访问 www.test_a.com ,出现在ubuntu浏览器中访问 www.test_a.com 的效果一样!!!!
到此虚拟主机配置完成!!!
参考资料:
http://xuchengji.blog.51cto.com/160472/387247;
http://blog.sina.com.cn/s/blog_483e43060101p603.html。