一、准备工作
安装开发工具包组以及需要的软件包:
[root@centOS6 apr-util-1.6.0]# yumgroupinstall "development tools"[root@centOS6 apr-util-1.6.0]# yum install expat-devel[root@centOS6 httpd-2.4.28]# yum install pcre-devel openssl-devel
注:httpd-2.4.28版本 需要依赖apr-t.4以上的版本,而centos6默认安装的是apr-1.3版本,所以在编译httpd之前要先编译安装ARP。
二、实验步骤(方法一):
1、解压三个源码包
[root@centOS6 ~]# tar xvf httpd-2.4.28.tar.bz2[root@centOS6 ~]# tar xvf apr-1.6.2.tar.gz[root@centOS6 ~]# tar xvf apr-util-1.6.0.tar.gz
2、编译安装apr以及apr-util
[root@centOS6 apr-1.6.2]# ./configure --prefix=/app/apr[root@centOS6 apr-1.6.2]# make && make install[root@centOS6 bin]# ./configure --prefix=/app/apr-util --with-apr=/app/apr [root@centOS6bin]# make && make install
3、编译安装httpd-2.4.28
[root@centOS6 bin]# ./configure--prefix=/app/httpd24 \--enable-so --enable-ssl --enable-cgi --enable-rewrite--with-zlib \--with-pcre --with-apr=/app/apr/ --with-apr-util=/app/apr-util/ \--enable-modules=most --enable-mpms-shared=all --with-mpm=prefork[root@centOS6bin]# make && make install
4、启动服务
[root@centOS6 bin]# cd /app/httpd24/bin //编译的时候指定的存放配置文件的路径[root@centOS6 bin]# ./apachectl
5、测试连接
[root@localhost ~]# curl 192.168.35.136Itworks!
//默认的界面
三、方法二
1、解压软件包(同方法一)
2、编译编译安装
[root@centOS6~]# cp -av apr-1.6.2 httpd-2.4.28/srclib/apr[root@centOS6~]# cp -av apr-util-1.6.0 httpd-2.4.28/srclib/apr-util[root@centOS6~]# cd httpd-2.4.28[root@centOS6 httpd-2.4.28]# ./configure --prefix=/app/httpd24 --enable-so \--enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre \--with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork[root@centOS6 httpd-2.4.28]# # make -j 4 && make install
3、将启动路径写入PATH变量
[root@centOS6 httpd24]# vim /etc/profile.d/httpd24.sh PATH=/app/httpd24/bin:$PATH
4、修改服务脚本
[root@centOS6 init.d]# cp httpd httpd24[root@centOS6 init.d]# vim httpd24 apachectl=/app/httpd24/bin/apachectl //apachectl 的文件路径httpd=${HTTPD-/app/httpd24/bin/httpd} //服务的路径pidfile=${PIDFILE-/app/http24/logs/httpd.pid} //存放服务主进程的进程id文件路径lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
5、启动服务
service httpd24 start
小结:两种方法的不同之处是第二种方法不需要单独编译apr,但需要将解压好的apr文件以及apr-util文件复制到解压好的http文件的srclib目录下,然后在编译的时候加上--with-included-apr。