搭建Web服务器Apache

搭建Web服务器Apache

相信使用过计算机的人,都应该有过访问Web服务器的经历。在网站浏览新闻、登录邮件服务器收发邮件、通过网络购物、以浏览器方式配置防火墙等,无一例外都有一个Web服务器在为访问者提供服务。尽管有其他方式来实现对设备或服务的访问(如配置卫星调制解调器),但以Web方式提供访问的策略依然是最受欢迎的,因为它更直观,也更方便,因此,使得Web服务器得以更广泛的流行。Apache是Linux主流的服务器,为Linux的迅速繁荣立下汗马功劳。根据资料显示,截至2005年12月,在Internet上,Apache服务器以绝对优势雄居Web服务器之首。在这节内容中,我们讨论Linux下大名鼎鼎的Web服务器Apache。请初学者注意,不要花费心思去搜寻名字为Apache这样的软件包,它现在的名字是httpd。

Apache服务器的安装
有两种时候可以安装Apache服务器:安装Linux操作系统的时候安装Web服务器和安装完系统后安装Apache服务器。
 
提示:可以用命令#rpm-qa|grep httpd检查一个系统是否安装了Apache服务器,如果没有输出,则表明没有安装。图1为某个安装了Apache服务器输出的一个范例。如果是以源码安装的Apache服务器,则此种方法无效,需要用find工具查找httpd文件是否存在。
如果在安装Linux操作系统期间没有安装Apache,这就需要使用包文件来安装。
1.RPM包的安装。从Linux的安装光盘和互联网上,都可以得到Apache的RPM安装包,然后把安装包复制到硬盘,并切换到安装包文件所在的目录。本文以httpd-2.0.52-9.ent.rpm为例。执行命令:

# rpm-ivh httpd-2.0.52-9.ent.rpm

然后再执行:
# rpm -ivh httpd-manual-2.0.52-9.ent.rpm

把手册也安装上去。
2.源码安装。到网站 www.apache. org下载欲安装的版本,笔者喜欢尝试最新的版本,当前的最新有效版本为httpd-2.2.0.tar.gz。在httpd-2.2.0.tar.gz文件所在的当前目录解压文件# tar zxvf httpd-2.2.0.tar.gz,然后切换目录到httpd-2.2.0,进行配置:
#cd httpd-2.2.0.tar.gz;/configure--prefix=/usr/local/apache

顺利完成这步后,接着进行编译安装:
# make;make install。

其中,配置这一过程,使用了选项“--prefix=/usr/local/apache”来指定Apache的安装目录,使Apache服务器所需的大部分文件都被复制在这个目录里。实际上,配置是一个很灵活的选择,根据需要可以添加更多的选项,支持更多的功能。
配置文件
Apache的配置文件是httpd.conf,一般在/etc/http/conf或/usr/local/apache/conf目录,以rpm包形式安装的Apache,配置文件的位置是/etc/httpd/conf/httpd.conf。对Apache服务器进行得最多的操作恐怕就是在时时更改这个文件的内容。当然,如果只是运行简单的静态网页,也可以不用对它做任何更改。
打开配置文件httpd.conf,可以获悉根文档的目录位置。前面安装的Apache的根文档位置是/usr/local/apache/htdocs(rpm包安装的Apache的根文档位置是/var/www/html),欲运行自己的网站,需要把做好的网页文件和目录复制到Apache的根文档才可以。当初,笔者在配置Apache服务器的时候,在这一步费了不少周折。
上传网页文件及目录
上传网页文件及目录的最佳方式是启用FTP服务。创建一个系统用户,使该用户对目录/usr/local/apache/htdocs具有读写权限或者该用户的主目录为/user/local/apache/htdocs。在这里我们创建一个用户,使其主目录为Apache的根文档目录:
# useradd -d/usr/local/apache/htdocs Webuser //添加的用户为Webuser,
# passwd Webuser //给该用户设置一个访问密码。

这样就可以很方便地修改或上传网页文件和目录了。有人认为,用SSH客户端工具也可以实现文件的上传,但这是不方便的,因为SSH客户端工具只可以传送文件而不能上传目录。
启用/关闭Apache服务
上面的步骤都准备好以后,就可以启用这个网站服务器了。启用方法如下:
# /usr/local/apache/bin/apachctl start   //源码安装的启动方式
#/usr/local/apache/bin/apachectl stop 
# service httpd start//rpm包安装的启动方式
# service httpd stop

如果不出意外,Apache服务器将如我们所期待的那样运行起来,我们只要在某台能访问Apache服务器的计算机浏览器里输入Apache服务器的IP地址或者预先解析好的域名,网站的主页就会出现在浏览器里。在Apache服务器端,通过输入命令:
# ps -aux|grep httpd

检查Apache服务器是否正在运行。到此,一个具备基本功能的Apache服务器就诞生了。
虚拟主机
有时候,我们可能需要用一个Apache服务器来做多个Web服务器,比如运行几个不同的网站,这样就可以大大地节省开支。
使用虚拟主机大致有以下几个步骤:
1.确定使用虚拟主机的方式。虚拟主机有基于域名、IP、端口等几种形式,应该根据自己的实际情况来决定。
2.修改配置文件/etc/httpd/conf/httpd.conf或/usr/local/apache/conf/httpd.conf。
3.域名解析(基于域名的虚拟主机),这一步需要在域名服务器上进行。
4.启用/关闭虚拟主机。启用/关闭Apache守护进程即可,但这将关闭所有的Web服务。
设置虚拟主机实例
接下来,笔者将讲述一个虚拟主机的实例。
先描述一下需求:一台服务器,要求运行一个以PHP为脚本的网站,另外还要用它来做网络流量监控(需要Web服务)。在这里,我们采用二进制源码包的方式来安装配置Apache虚拟服务器,以便于对Apache服务器有更深刻的理解。
(1)安装Apache服务器。从 www.apache.org下载包httpd-2.2.0.tar.gz到目录/root,然后执行操作:
# tar zxvf  httpd-2.2.0.tar.gz      //包解压
# cd # tar zxvf  httpd-2.2.0.       
#./configure --prefix=/usr/local/apache --enable-module=most --enable-shared=max
# make
# make install

至此,Apache就算安装好了。
先测试一下,运行命令:
# /usr/local/apache/bin/apachectl start 

然后在与之联网的计算机的浏览器里输入运行Apache服务的计算机IP地址,出现测试页面表明配置一切正常。
(2)安装PHP。下载包php-4.3.11.tar.gz到目录/root,然后执行下面的操作:
# tar -zxvf php-4.3.11.tar.gz    //解压文件
#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs  //正常//完成后会在/usr/local/apache/modules 里生成文件libphp4.so,并且会在//apache的配置文件httpd.conf里加上一行LoadModule php4_module //modules/libphp4.so
# make
# make install
#cp php.ini-dist  /usr/local/lib/php.ini   //拷贝文件

完成后看是否真在目录/usr/local/apache/modules生成文件libphp4.so,再打开配置文件httpd.conf查看LoadModule php4_module modules/libphp4.so是否被自动追加。
(3)修改Apache配置文件/usr/local/apache/conf/httpd.conf。加入行TypeAdd application /x-httpd-php .php4到307行的位置,当然其他位置也是可以的。

注意:php4前面有一个空格。笔者第一次配置PHP整合Apache的时候就犯了这个错误,用了好几天的时间才弄明白。另外PHP前面那个“.”(小黑点)一定不要漏掉了。
(4)启动一下apache服务器。找几个php脚本的网页文件,把它复制到apache指定的根文档目录/usr/local/apache/htdocs,然后在与之联网的计算机的浏览器中输入apache所在机器的URL(形如 http://192.168.100.10/test.php),来检验一下配置是否成功。
(5)创建虚拟服务器。Apache/2.2.0与以前的版本有些差异,它是以包含文件的方式来加载用户定义的虚拟主机配置,前面的版本定义虚拟主机就在httpd.conf文件中。我们还是先在主配置文件中把虚拟主机的配置文件/usr/local/apache/conf/extra/httpd-vhosts.conf包含进来。具体的操作就是把行#Include conf/extra/httpd-vhosts.conf的注释去掉,使之成为Include conf/extra/httpd-vhosts.conf,这一行在httpd.conf的行号是394,然后保存后退出。接着我们打开文件/usr/local/apache/conf/extra/httpd-vhosts.conf,其默认状态如下:

#

ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /www/docs/dummy-host.example.com
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common

等我们先安装配置mrtg,然后再回过头来修改文件/usr/local/apache/conf/extra/httpd-vhosts.conf。
(6)启用交换机的SNMP功能。要监控连接在交换机每个端口的服务器网络流量,必须启用交换机的SNMP,这样就不必更改被监控服务器的任何设置。启用交换机SNMP功能的方法,请参照相关文档。
(7)安装和配置mrtg。把软件包下载到硬盘,解压后直接安装就可以了。
(8)修改虚拟主机配置文件。需要指定根文档目录、服务器名称这几项。
如果要对虚拟主机的访问进行用户验证,还需要在Apache的主配置文件对虚拟机的根文档目录进行相关的处理。把下面的行插入到Apache的主配置文件httpd.conf中。
AuthName "mrtg
AuthType Basic
AuthUserFile /usr/local/apache/.mrtg   //带点是为了使文件的属性为隐藏
require valid-user

保存后退出。然后运行命令:
# /usr/local/apache/bin/htpasswd -c /usr/local/apache/.mrtg  sery

按照提示设定用户sery的访问密码。
(九)做域名解析。在域名服务器上解析主机mrtg.sery.com.
(十)启用Apache服务。用指令# ps -aux | grep httpd 检查Apache是否正常运行,然后在另外的计算机浏览器里输入Apache服务器的URL,如输入 www.sery.com则应该访问到主配置文件设定的网页,如果输入mrtg.sery.com则访问上面设定的虚拟机页面,并且需要输入正确的用户名和密码才能访问。
通过上面的实践,我们可以得出这样一个结论:Apache服务器功能设定的主要操作就是修改配置文件——主配置文件httpd.con及包含配置文件。当然,Apache的配置不仅仅是上文所描述的那些,可以说是非常丰富,也是非常灵活的。限于篇幅,不再详叙。至于要让Apache随系统启动,可以把守护进程/usr/local/apache/bin/httpd&加在文件/etc/rc.local里即可。
提示:为了在同一环境下使用更多的Apache服务,可以安装多个Apache到不同的目录,安装目录在安装过程中的配置操作./configure - prefix=<安装目录>制定,所有Apache的配置原则都是一致的,所有配置完成后,把它们全部启动起来。关于配置多个虚拟主机与安装多个Apache服务究竟有多大的差别,望各位读者自己去做评判。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值