首页 > 代码库 > 虚拟主机的搭建(ubuntu+apache2)

虚拟主机的搭建(ubuntu+apache2)

搭建环境: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。

  

虚拟主机的搭建(ubuntu+apache2)