Centos6下编译安装Apache 2.4
Apache2.4新特性:
MPM支持运行DSO机制,以模块形式按需加载。
模式event MPM已近生产可用。
支持异步读写,可以极大地释放服务器并发能力。
支持每个模块使用各自的日志级别。
支持每请求<If>,判断摸个模块是否存在在加载。
增强版的表达式分析器。
支持毫秒级的keepalive timeout。
基于FQDN的虚拟主机不再需要NameVirtualHost指令。
支持用户自定义变量。
httpd2.4的安装:
在安装httpd服务之前先要安装编译环境,yum -y groupinstall "Development Tools" "Server Platform Development",安装好后再安装yum -y install pcre-devel。
在Centos6上安装2.4版本和安装2.2的不同,因为Centos6上默认的就是2.2版本可以使用rpm包安装,但是要安装2.4版本的首先需要安装2.4所依赖的软件包apr-1.4+和apr-util-1.4+后才可以安装httpd2.4,但是Centos6上已近安装有apr-1.3.9和apr-util-1.3.9,而且其他包会依赖这两个老版本的软件包,所以要安装2.4版本只能编译安装,而不能使用rpm包安装 。
下载所需要的软件:
wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/httpd/httpd-2.4.10.tar.gz
wget https://mirrors.aliyun.com/apache/httpd/httpd-2.4.29.tar.gz
wget http://oss.aliyuncs.com/aliyunecs/onekey/apache/apr-1.5.0.tar.gz
wget http://oss.aliyuncs.com/aliyunecs/onekey/apache/apr-util-1.5.3.tar.gz
前两个是httpd服务,都是2.4版本的任意一个即可,防止链接失效,后面两个apr和apr-util是httpd服务依赖的两个组件。
下载后解压:
将三个压缩包都分别解压,解压后的目录分别是apr-xxx,apr-util-xxx,httpd-xxx,将apr-xxx整个目录都复制到httpd-xxx/srclib/apr中,将apr-util整个目录都复制到httpd-xxx/srclib/apr-util中。
操作如下:
cp -rf apr-1.5.0 httpd-2.4.10/srclib/apr
cp -rf apr-util-1.5.3 httpd-2.4.10/srclib/apr-util
这样做的目的是在编译httpd服务时可以将apr和apr-util一起编译,下面编译安装httpd2.4,进入到httpd2.4目录,目录有个configure是编译用的文件。具体如下:
指定安装选项:
--prefix=/usr/local/apache24 指定安装目录,卸载时删除这个目录就可以了
--sysconf=/etc/httpd24 指定配置文件目录
全部选项:
./configure --prefix=/usr/local/apache24 --sysconf=/etc/httpd24 --with-mpm=prefork --enable-so --enable-rewrite --enable-mods-shared=all --enable-nonportable-atomics=yes --disable-dav --enable-deflate --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache --enable-ssl --with-included-apr --enable-modules=all --enable-mods-shared=all
安装:make && make install
启动服务:
安装好后就可以启动httpd服务了,但是只能通过路径的方式,因为这是编译安装没有service脚本,例:/usr/local/apache24/bin/httpd -k start 这条服务就启动了。使用ss -tnl命令查看80端口是否启动,访问主机的IP地址就可以了。
常用选项:
/usr/local/apache24/bin/httpd -t 检查配置文件语法是否有错
/usr/local/apache24/bin/httpd -M 检查httpd服务开启的模块
/usr/local/apache24/bin/apachectl httpd服务自带的控制脚本
apachectl {start|stop|restart|graceful|graceful-stop}
如果想直接使用apachectl命令的话可以在/etc/profile.d/目录下新建一个脚本,在脚本里面将这个路径导出即可,export PATH=/usr/local/apache24/bin:$PATH 保存脚本后添加权限,并重载脚本 . httpd.sh点、空格、脚本名这样就重载了。然后使用which apachectl查看这个目录是那个路径下的脚本。完成后就可以直接使用apachectl start命令了。/etc/profile.d/目录下的脚本在用户登陆系统时都会运行。
httpd选项:
2.4版本和2.2版本有些命令有所改变。
httpd [-k start|restart|graceful|graceful-stop|stop]
configtest 检查设置文件中的语法是否正确。用于修改了配置文件后进行测试是否有误。
fullstatus 显示服务器完整的状态信息。
graceful 重新启动Apache服务器,但不会中断原有的连接。用于修改了配置文件后进行重新读取配置文件。
help 显示帮助信息。
restart 重新启动Apache服务器。 = httpd -k restart
start 启动Apache服务器。
status 显示服务器摘要的状态信息。
stop 停止Apache服务器
相关配置:
自建服务控制脚本:
将/etc/rc.d/init.d/httpd脚本复制一份命为httpd24,打开httpd24文件后修改下面的内容
apachectl=/usr/sbin/apachectl httpd=${HTTPD-/usr/sbin/httpd} prog=httpd pidfile=${PIDFILE-/var/run/httpd/httpd.pid} lockfile=${LOCKFILE-/var/lock/subsys/httpd}
修改成下面
apachectl=/usr/local/apache24/bin/apachectl httpd=/usr/local/apache24/bin/httpd prog=httpd pidfile=${PIDFILE-/usr/local/apache24/logs/httpd.pid} lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
保存即可,然后用service httpd24 start命令测试是否可用。再用chkconfig --add httpd24将脚本添加到系统服务,可使用chkconfig httpd24 on命令设置开机启动。