我这里实验使用的linux系统版本为:红帽6.5企业版;Apache版本为:httpd-2.2.17
一.准备工作:为了避免发生端口冲突、程序冲突等现象,我们先将使用rpm包安装的httpd服务卸载掉
说明:rpm -q httpd是查询httpd是否安装,rpm -e httpd --nodeps是将httpd卸载掉并且卸载时不检查依赖关系
二.挂载软件光盘:先使df查看磁盘分区挂载情况,看看当前是否有光盘正在挂载,如果有,则使用umount命令先卸载掉,然后在挂载有Apache软件的光盘
三.编译安装:(将光盘挂载好以后,接下来就要进入源码编译安装的流程了,源码编译安装过程分为四步解包、配置、编译、安装)
1.解包(解包就是将光盘里面的安装包解压到本地,一般解压到/usr/src目录下)
2.配置(配置是根据服务器的实际应用需要来制定不同的选项,如指定安装路径、启用字符集等等,类似于windows软件的自定义安装,只不过linux中更加灵活)
说明:执行./configure --help可以查看各种配置选项及其含义,这里的配置选项含义如下
--prefix:指定httpd的安装路径
--enable-so:启用动态加载模块支持,使httpd具备进一步扩展功能的能力
--enable-rewrite:启用网页地址重写功能,用于网站的优化及目录迁移维护
--enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网页
--enable-cgi:启用CGI脚本程序支持,便于扩展网站的应用访问能力
配置好选项以后回车即可
3.编译(编译就是使用"make"命令将源代码文件进行编译而生成二进制的程序模块、动态链接库、可执行文件等,输入make回车即可)
4.安装(编译完成后,执行"make install"安装命令,将软件的执行程序、配置文件、帮助文档等相关文件复制到linux系统中,进行安装,输入make install回车即可)
安装好以后可以确认下安装结果
当然我们还要对安装目录下的子目录有一定了解,下面列举一些常用的子目录
/usr/local/httpd/bin:存放httpd服务的各种执行程序文件,如主程序httpd、服务控制工具apachectl等
/usr/local/httpd/conf:存放httpd服务的各种配置文件,包括主配置文件httpd.conf、增强配置子目录extra等
/usr/local/httpd/htdocs:存放网页文档,包括默认首页文件index.html等
/usr/local/httpd/logs:存放httpd服务的日志文件,如access_log、error_log等
/usr/local/httpd/modules:存放httpd服务的各种模块文件
/usr/local/httpd/cgi-bin:存放各种CGI程序文件
为了使该服务在使用中更加方便,我们也可以优化下执行路径(通过源码编译安装的httpd服务,程序路径并不在默认的搜索路径中,可以使用ln命令为相关程序添加符号链接)
四.httpd服务器的基本配置
1.为服务器配置IP地址(我这里用的是第一块网卡,这个根据实际需求分配,将ONBOOT改成开机启动,并且配置BOOTPROTO为静态地址,然后添加IP地址和子网掩码)
2.打开配置文件进行相关配置(比如配置网站名称、默认首页网站根目录等等)
下面介绍一些经常用到的全局配置项
ServerRoot:设置httpd的根目录,该目录下包括了运行Web站点必须的子目录和文件,默认的根目录是/usr/local/httpd,与httpd的安装目录相同
DocumentRoot:设置网站根目录,即网页文档在系统中的实际存放路径
DirectoryIndex:设置网站的默认索引页,也就是首页,可以设置多个首页文件,以空格分开,默认的首页文件为index.html
Listen:设置httpd服务器监听的网络端口号,默认为80
ErrorLog:设置错误日志文件的路径,默认为log/error_log
LogLervl:设置记录日志级别,默认为warm(警告)
CustomLog:设置访问日志文件的路径、日志类型,默认为log/access_log
Include:包含另一个配置文件的内容,可以实现将一些特殊功能的配置放到一个单独的文件中,再使用Include配置项将其包含到主配文件中,便于独立进行配置文件的维护
除了全局配置项,我们还要知道区域配置项,接下来列举一些经常用到的区域配置项
如上图所示,在httpd的主配置文件httpd.conf中会有一些以Directory开头,以/Directory结尾的区域配置项,每个区域配置项的功能都限定了配置项的作用范围, 其中Order配置项比较重要,因为此配置项可以对客户机地址进行访问限制
<Directory />:定义“/”目录区域的开始
<Options FollowSymLinks>:控制选项,允许使用符号链接
<AllowOverride None>:不允许隐含控制文件中的覆盖配置
Order deny,allow:访问控制策略的应用顺序
Deny from all:禁止任何人访问此区域
</Directory>:定义"/"目录区域的结束
3.将httpd添加为系统服务(我们安装好的httpd默认并不是系统服务,所以需要手动添加)
说明:打开/etc/init.d/httpd脚本以后,我们在里面需要添加两行注释
chkconfig这一行是此脚本中默认设置的服务识别参数,35代表在系统级别3、5中启动;启动和关闭顺序分别为85和21
description这一行没有什么具体作用,只是服务描述信息
添加好注释后,保存退出,再将httpd添加为系统服务,并看下httpd的服务的自启动状态
4.启动httpd服务(启动前,可以先对主配置文件做一下语法检测,然后在启动后也可以查看下httpd服务的网络连接信息)
这样web服务器就搭建好了