Apache配置(5)

 2.配置步骤

  假设,我们用来实现虚拟主机服务的机器,首先已经为自己提供了WEB服务,现
  在将为新的一家www.company1.com提供虚拟主机服务。

  规划IP地址:为虚拟主机申请新的IP地址。(假设本机IP地址为202.101.2.1)

  www.company1.com 202.101.2.2

  2) 让ISP作好相应的域名解析工作。

  3) 为网卡设置IP别名:

  /sbin/ifconfig eth0:0 202.101.2.2 netmask 255.255.255.0

  4) 重新设置"/etc/httpd/conf/httpd.conf",在文件中加入:

  <VirtualHost 202.101.2.2>

  ServerAdmin webmaster@yourdomain.com

  DocumentRoot /home/httpd/www.company1.com

  ServerName www.company1.com

  ErrorLog /var/log/httpd/www.company1.com/error.log

  </VirtualHost>

  5)建立相应的目录。

  mkdir /home/httpd/www.company1.com

  mkdir /var/log/httpd/www.company1.com/error.log

  6)将相应的主页内容存放在相应的目录中即可。

  3.不利因素

  这种虚拟主机的实现方法有一个严重的不足,那就是,每增加一个虚拟主机,
  就必须增加一个IP地址。而由于IP地址空间已经十分紧张,所以通常情况下是
  无法取得这么多的IP地址的。而且从某种意义上说,这也是一种IP地址浪费。
  设置实现基于名字的虚拟主机服务而基于名字的虚拟主机服务,是比较适合使
  用的一种方案。因为它不需要更多的IP地址,而且配置简单,无须什么特殊的
  软硬件支持。现代的浏览器大都支持这种虚拟主机的实现方法。当然,这也就
  是指一些早期的客户端浏览器也许不支持这种虚拟主机的实现方法。


    正是以上原因,我们没有理由不使用基于名字的虚拟主机服务而使用基于
  IP地址的虚拟主机服务。配置基于名字的虚拟主机服务需要修改配置文
  件?quot;/etc/httpd/conf/httpd.conf",在这个配置文件中增加以下内容。

  NameVirtualHost 202.101.2.1

  <VirtualHost 202.101.2.1>

  ServerAdmin webmaster@yourdomain.com

  DocumentRoot /home/httpd/www.company1.com

  ServerName www.company1.com

  ErrorLog /var/log/httpd/www.company1.com/error.log

  </VirtualHost>

  <VirtualHost 202.101.2.1>

  ServerAdmin webmaster@yourdomain.com

  DocumentRoot /home/httpd/www.company2.com

  ServerName www.company2.com

  ErrorLog /var/log/httpd/www.company2.com/error.log

  </VirtualHost>

    也就是在基于IP地址的配置基础上增加一句:NameVirtualHost
  202.101.2.1而已。在本例中,为了体现只需要增加一次,所以特别地设置了两
  个虚拟主机服务。

  最后也是建立相应的目录,将主页内容放到相应的目录中去就可以了。


  配置CGI

  1. 什么是CGI

  CGI是独立于语言的网关接口规范,它实际上可以用任何广泛流行的应用程序开
  发语言来实现,包括C、C++、Perl、Shell脚本甚至Java。

  WEB服务器从客户端得到某个URL,它告诉WEB服务器,必须运行一个CGI外部应
  用程序。那么WEB服务器启动这一应用程序,等待它完成并返回输出结果。最
  后,它将此应用程序的输出结果传输给另一端的WEB客户。

  2. 为CGI配置Apache

  那么如何使Apache能处理CGI请求呢?我们必须通过相应的配置过程告知
  Apache在哪里存储CGI程序,指明CGI程序的扩展等,以下我们逐一介绍一下设
  置的内容与步骤。

  创建存储CGI程序的目录

  创建集中的CGI程序目录只是建立CGI环境的开始。如果要考虑提高安全

  性的话,应将集中的CGI程序目录保存在DocumnetRoot目录外,使得访问者不能
  直接访问CGI程序。 第一步:在DocumentRoot目录外创建一个目录,然后将所
  有的CGI程序都集中存放在这个目录下。例如,你可创建一个
  /home/httpd/public/apps的目录作为CGI程序的大本营。

  第二步:为CGI程序目录创建别名,也就是编辑配置文件httpd.conf,加入:

  ScriptAlias /cgi-bin/ /home/httpd/public/apps

  这样做后,当客户www.xxx.com/cgi-bin/li.cgi时,WEB服务器就会自动执行
  WEB服务器上的/home/httpd/public/apps/li.cgi文件。

  第三步:为CGI目录设置合适的权限,一般是只允许Apache有读取和执行的权限
  但没有写的权限。

  允许用户访问cgi-bin

  我们已经在4.5小节中介绍了如何给用户开辟个人主页空间,但如果你的

  用户需要使他的主页更具有活力,往往会向你申请cgi-bin访问服务。下面我们
  就介绍一个Apache服务器为用户提供的两种cgi-bin访问方法。

  1)使用Directory或DirectoryMatch容器

  当在配置文件srm.conf中用UserDir命令被赋值为目录名称时,Apache就

  把它作为用户WWW站点的顶层目录。例如:

  UserDir Public_html

  当Apachewww.xxx.com/~user的请求,就到/home/user/Public_html取出主页发
  送给客户。 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值