Linux下搭建Apache服务器全过程详解
什么是Apache?
Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似。
Apache主要特点
1、开放源代码、跨平台应用
2、支持多种网页编程语言
3、模块化设计 、运行稳定、良好的安全性
Apache软件版本
1.X
1、目前最高版本是1.3,运行稳定
2、向下兼容性较好,但缺乏一些较新的功能
2.X
1、目前主要包括2.0和2.2两个版本
2、具有更多的功能特性
3、与1.X相比,配置管理风格存在较大差异
Apache编译安装的优点
1、具有较大的自由度,功能可定制
2、可及时获得最新的软件版本
3、普遍适用于大多数Linux版本,便于移植使用
一:实验要求
1:学会编译安装httpd服务器
2:熟悉httpd服务的部署过程及常见配置
3:学会构建AWStats日志分析系统
4:httpd服务的访问控制
客户机的地址限制
用户授权限制
5:构建虚拟WEB主机
基于域名的虚拟主机
基于IP地址、端口的虚拟主机
二:实验环境
1:需要的软件包
apr-1.5.2.tar.gz
apr-util-1.5.4.tar.gz
httpd-2.4.25.tar.gz
2:搭建服务器的环境
RHEL6.5版本
IP地址:192.168.1.63 255.255.255.0
配置好yum仓库
三:实验代码
第一块:搭建apache服务器
主要目录和文件:
服务目录:/usr/local/httpd/
主配置文件:/usr/local/httpd/conf/httpd.conf
网页目录:/usr/local/httpd/htdocs/
服务脚本:/usr/local/httpd/bin/apachectl
执行程序:/usr/local/httpd/bin/httpd
访问日志: /usr/local/httpd/log/access_log
错误日志: /usr/local/httpd/log/error_log
第1步:卸载httpd软件及相关软件包
[root@linuxidc ~]# rpm -e httpd httpd-manual webalizer subversion mod_python mod_ssl mod_perl system-config-httpd php php-cli php-ldap php-common mysql dovecot --nodeps
注释:--nodeps是强制接触依赖关系
第2步:检查手工编译需要的4中软件包是否安装
[root@linuxidc ~]# rpm -q gcc
gcc-4.4.7-4.el6.x86_64
[root@linuxidc ~]# rpm -q gcc-c++
gcc-c++-4.4.7-4.el6.x86_64
[root@linuxidc ~]# rpm -q make
make-3.81-20.el6.x86_64
[root@linuxidc ~]# yum install pcre-devel -y
第3步:解压软件包
[root@linuxidc ~]# tar zxvf httpd-2.4.25.tar.gz -C /opt/
[root@linuxidc ~]# tar -zxvf apr-1.5.2.tar.gz -C /opt/
[root@linuxidc ~]# tar -zxvf apr-util-1.5.4.tar.gz -C /opt/
[root@linuxidc opt]# cp -r apr-1.5.2/ httpd-2.4.25/srclib/apr
[root@linuxidc opt]# cp -r apr-util-1.5.4/ httpd-2.4.25/srclib/apr-util
注释:解压后复制到httpd的srclib解压目录中(不带版本号)
第4步:源码编译安装Apache
[root@linuxidc ~]# cd /opt/httpd-2.4.25/
[root@linuxidc httpd-2.4.25]# ./configure \ #源码
--prefix=/usr/local/apache \
--enable-so \
--enable-rewrite \
--enable-mods-shared=most \
--with-mpm=worker \
--disable-cgid \
--disable-cgi
[root@linuxidc httpd-2.4.25]# echo $?
[root@linuxidc httpd-2.4.25]# make -j 4 #编译,将编译程序变为可执行程序
[root@linuxidc httpd-2.4.25]# make install #安装
参数解释:
--prefix= //来指定安装路径
--enable-so //该参数表示支持用mod_so模块提供的功能,用LoadModule在httpd.conf文件或包含的conf文件中动态加载某个模块。让 Apache 可以支持DSO模式
--enable-rewrite //支持 URL 重写
--enable-mods-shared=most //选项:告诉编译器将所有标准模块都动态编译为DSO模块。
--with-mpm=worker // 让apache以worker方式运行
--with-mpm=worker //该参数是配置apache将以何种模式编译的。Apache网站文档指出不同操作系统下的不同的默认模式.
--disable-cgid //禁止用一个外部 CGI 守护进程执行CGI脚本
--disable-cgi //禁止编译 CGI 版本的 PHP
第5步:命令链接到PATH变量并且管理service
[root@linuxidc httpd-2.4.25]# ls /usr/local/apache/bin/apachectl #检查apachectl命令
/usr/local/apache/bin/apachectl
[root@linuxidc httpd-2.4.25]# echo $PATH #查看PATH变量
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin
注释:Linux系统中所有的命令都是放在PATH变量中的,可以放在/usr/local//sbin或者/usr/local//bin下。
[root@linuxidc httpd-2.4.25]# ln -s /usr/local/apache/bin/* /usr/local/bin/
[root@linuxidc httpd-2.4.25]# ls -l /usr/local/bin/apachectl /usr/local/bin/httpd
lrwxrwxrwx 1 root root 31 3月 9 17:32 /usr/local/bin/apachectl -> /usr/local/apache/bin/apachectl
lrwxrwxrwx 1 root root 27 3月 9 17:32 /usr/local/bin/httpd -> /usr/local/apache/bin/httpd
注释:优化路径,将/usr/local/apache/bin/下的所有命令内容链接到PATH变量中的路径下。
只有将命令链接到PATH变量的路径中,命令才可以被使用。
[root@linuxidc httpd-2.4.25]# grep -v "#" /usr/local/apache/bin/apachectl > /etc/init.d/httpd
[root@linuxidc httpd-2.4.25]# vim /etc/init.d/httpd
#!/bin/sh
# chkconfig: 2345 85 15
# description: Apache is a World Wide Web server.
[root@linuxidc httpd-2.4.25]# chmod +x /etc/init.d/httpd
[root@linuxidc httpd-2.4.25]# chkconfig --add httpd
[root@linuxidc httpd-2.4.25]# chkconfig --list httpd
httpd 0:关闭1:关闭2:关闭3:关闭4:关闭5:关闭6:关闭
注释:使程序可以使用service 管理,"service管理的命令都在/etc/init.d/这个目录下的"。如果是rpm命令安装的软件包就不需要使用service命令管理,可以直接执行service命令,但是手工源码编译的软件包,程序就不可以直接执行service命令。
第6步:将配置文件链接到/etc下
[root@linuxidc httpd-2.4.25]# ln -s /usr/local/apache/conf/httpd.conf /etc/httpd.conf
[root@linuxidc httpd-2.4.25]# vim /etc/httpd.conf
ServerName www.example.com:80
[root@linuxidc httpd-2.4.25]# service httpd start #启动服务没有效果
[root@linuxidc httpd-2.4.25]# netstat -anutp | grep http #监听http服务
tcp 0 0 :::80 :::* LISTEN 32974/httpd
第7步:物理机验证http服务
[root@linuxidc httpd-2.4.25]# service iptables stop #关闭防火墙
[root@linuxidc httpd-2.4.25]# cd /usr/local/apache/ #
[root@linuxidc apache]# cat htdocs/index.html
<html><body><h1>It works!</h1></body></html>
注释:在/usr/local/apache/htdocs/下存放着apache服务自带的index。Html网页,用于验证,次服务是否启动成功,在此目录下,可以创建更多的网页文件。
[root@linuxidc htdocs]# vim a.html 创建一个新的网页
<html>
<body>
<h1>This is my first homepage!!!!------mobanche !</h1>
<h2>--------Welcome my homepage----------</h2>
</body>
</html>