红联Linux门户
Linux帮助

Linux(RHEL5)安装httpd服务器(理论篇)

发布时间:2015-04-12 15:51:28来源:忘真楠作者:忘真楠

安装httpd服务器

1.RPM包安装

# mount /dev/cdrom /media

# cd /media/Server

# rpm –ivh -–aid --force httpd-2.2.3-6.el5.i386.rpm

与Apache服务器相关的主要目录和文件如下

/etc/httpd/ Apache服务程序的主目录

/etc/httpd/conf/httpd.conf Apache服务器的主配置文件

/var/www/html/ Apache网页文档默认的根目录(网站根目录)

/etc/init.d/httpd Apache服务的控制脚本

/usr/sbin/httpd Apache服务的主要执行程序

/var/log/httpd/access_log Apache访问日志

/var/log/httpd/error_log Apache错误日志

2.编译安装

# wget http://archive.apache.org/dist/httpd/httpd-2.2.9.tar.gz

# tar zxvf httpd-2.2.9.tar.gz -C /usr/src

# cd /usr/src/httpd-2.2.9

# ./configusr - -prefix=/usr/local/apache2 - -enable-so - -enalbe-rewrite

# make

# make install

- -prefix :用于指定httpd服务程序将要安装到的系统目录

- -enable-so :使httpd服务能够动态的加载模块功能

- -enable-rewrite :使httpd服务具有rewrite网页地址重写功能


httpd服务基础

1.httpd服务的目录结构
Linux(RHEL5)安装httpd服务器(理论篇)

bin :目录中包括了运行和管理web服务所需要的执行程序,其中httpd是服务器的执行程序,apachectl是服务程序的控制脚本
Linux(RHEL5)安装httpd服务器(理论篇)

conf :目录是Apache服务器的配置文件,其中httpd.conf是Apache服务器的主配置文件
Linux(RHEL5)安装httpd服务器(理论篇)

htdocs :目录是Apache服务器的文档根目录,该目录将作为Web站点网页文件存放的根目录
Linux(RHEL5)安装httpd服务器(理论篇)

注:以上图片上传到红联Linux系统教程频道中。

manual :目录中保存了Apache服务器完整的配置指南文档,以HTML文件格式提供

man :目录用于保存httpd、apachectl等程序的man帮助文档

lib :目录中保存了允许Apache服务所用的库文件

modules :目录中保存了提供给Apache服务器动态加载的模块文件

logs :用于保存Apache服务的日志文件

2.构建基本可用的Web服务器

(1)修改主配置文件

# vi /usr/local/apache2/conf/httpd.conf

ServerName www.benet.com

(2)检查httpd.conf文件的语法设置

# /usr/local/apache2/bin/apachectl -t

或者

# /usr/local/apache2/bin/httpd -t //检查httpd.conf文件的语法是否正确

(3)启动终止及重启httpd服务

# /usr/local/apache2/bin/apachectl start //启动httpd服务

# netstat -anpt | grep :80

如果希望httpd服务开机自动启动,可以将对应的启动命令写入到/etc/rc.d/rc.local文件中

# vi /etc/rc.d/rc.local

/usr/local/apache2/apachectl start

(4)排除httpd服务的个别启动故障

无法确定web服务器主机名的故障

编辑httpd.conf主配置文件,添加配置行ServerName www.benet.com ,指定完整的主机名,若缺少该行,httpd服务可能会将127.0.0.1作为主机名
修改/etc/sysconfig/network文件,修该主机名,例如: HOSTNAME=www.benet.com
编辑 /etc/hosts文件,添加服务器的主机名,IP地址映射记录。如 192.168.0.12 www.benet.com www

TCP 80端口已被占用的故障

找出占用80端口的进程并关闭掉即可,很可能是系统原有RPM方式安装的httpd服务进程造成的。只要挺有原来的httpd服务,并将启动状态设置为关闭即可

# netstat -anpt | grep :80

# killall -9 httpd

# chkconfig --level 35 httpd off

3.httpd.conf配置文件

因为主配置文件有大量的注释行,可以通过grep命令去除httpd.conf文件中的注释行内容,仅保留有效的设置行清单

# cd /usr/local/apache2/conf/

# cp httpd.conf httpd.conf.bak

# grep -v “#” httpd.conf.bak | grep -v “^$” > httpd.conf

httpd.conf中的全局配置

ServerRoot : 用于设置httpd服务器的根目录,该目录中包含了允许web站点必需的目录和文件,在httpd.conf配置文件中,如果设置的目录或文件不使用绝对路径,都认为是在服务器根目录下

Listen : 设置服务器监听的端口号,默认为80

User : 运行httpd服务进程的用户身份

Group : 运行httpd进程的组身份

ServerAdmin : 设置服务器的管理员E-mail地址,可以通过此地址即使联系服务器管理员

ServerName : 设置服务器完整的主机名FQDN

DocumentRoot : 设置网页文档目录在系统中的实际路径

DirectoryIndex : 设置网页默认索引页,可以设置多个文件,以空格分开

ErrorLog : 错误日志文件的路径和文件名

LogLevel : 记录日志的级别,默认为Warn警告

CustomLog : 访问日志的路径和格式类型

PidFile : 保存服务器进程号PID的文件

Timeout : 设置web服务器与浏览器之间网络连接的超时秒数,默认为300妙

KeepAlive 是否使用保持连接功能off不使用,客户机每次连接只能从服务器请求返回一个文件,传输效率比较低,设置为On时,表示使用,刚好相反

MaxKeepAliveRequests : 客户端每次连接允许请求的最大文件数

KeepAliveTimeout : 设置保持连接的超时秒数

Include : 用于包含另一个配置文件的内容,可以将实现一些特殊功能的配置单独放到一个文件里,,再使用Include配置项包含到httpd.conf主配置文件中来,便于独立维护


httpd.conf中的区域配置

<Directory />

Options FollowSymLinks

AllowOverride None

Order deny,allow

Deny from all

</Diretory>

以上为目录区域,主要为特定目录(如系统根目录 / )设置访问权限

除目录区域外,经常会设置虚拟主机区域<VirtualHost>……..</VirtualHost

4.httpd服务日志

访问日志文件

该文件用于记录客户端访问Web服务器时间,文件名称为access_log。文件中的每一行对应一条访问记录,将会记录客户机IP地址,访问服务器的日期和时间,请求的网页对象等信息/usr/local/apache2/logs/access_log

错误日志文件

该文件用于记录httpd服务启动或运行过程中出现错误的事件,文件名称为error_log。文件每一行对应一条错误记录,将会记录发生错误的日期和时间,错误事件类型。错误事件内容描述等/usr/local/apache2/logs/error_log