安装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服务基础
bin :目录中包括了运行和管理web服务所需要的执行程序,其中httpd是服务器的执行程序,apachectl是服务程序的控制脚本
conf :目录是Apache服务器的配置文件,其中httpd.conf是Apache服务器的主配置文件
htdocs :目录是Apache服务器的文档根目录,该目录将作为Web站点网页文件存放的根目录
注:以上图片上传到红联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