centos6编译安装httpd-2.4

实验环境正则表达式

centos6apache

 

在centos6上,若是经过yum命令安装httpd的rpm版本是httpd-2.2,若是须要安装httpd-2.4,必需要依赖于apr-1.4+, apr-util-1.4+环境,可是centos6对应环境工具apr版本是apr-1.39,apr-util-1.39,不能直接经过rpm来安装,要经过编译来安装。须要的步骤:vim

  编译安装apr-1.4+的版本centos

  编译安装apr-1.4+的版本缓存

  编译安装httpd-2.4版本dom

  手动生成服务控制脚本,若是是经过rpm来安装,rpm包的制做者会帮咱们制做对应的服务控制脚本,可是源码包没有,须要本身生成。工具

操做步骤网站

将原来安装的rpm版本的httpd-2.2  httpd服务关闭,并关闭开机自启,避免和如今安装的包产生影响ui

[root@localhost ~]#service httpd stop
Stopping httpd:                                            [  OK  ]
[root@localhost ~]#chkconfig --list httpd
httpd              0:off    1:off    2:off    3:off    4:off    5:off    6:off

 

 

安装开发包组spa

[root@localhost ~]#yum -y groupinstall "Development Tools" "Server Platform"

 

 

安装pcrce-devel包

[root@localhost ~]#yi pcre-devel

 

 

下载须要的源码包组

httpd-2.4  网站
http://httpd.apache.org/download.cgi#apache24
apr apr-util  网站
http://apr.apache.org/download.cgi

[root@localhost ~]#wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.5.2.tar.gz
[root@localhost ~]#wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.5.4.tar.gz
[root@localhost ~]#wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.23.tar.gz

 

 

解压安装apr包

[root@localhost ~]#tar -xf apr-1.5.2.tar.gz
[root@localhost ~]#cd apr-1.5.2
[root@localhost ~/apr-1.5.2]#./configure --prefix=/usr/local/apr
[root@localhost ~/apr-1.5.2]#make && make install
[root@localhost ~/apr-1.5.2]#cd /usr/local/apr/
[root@localhost /usr/local/apr]#ls
bin build-1 include lib

 

 

解压安装apr-util包

[root@localhost ~]#tar -xf apr-util-1.5.4.tar.gz 
[root@localhost ~]#cd apr-util-1.5.4
[root@localhost ~/apr-util-1.5.4]#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/    #必须指定须要的文件的路径,否则系统会去系统路径找,找不到报错
[root@localhost ~/apr-util-1.5.4]#cd /usr/local/apr-util/
[root@localhost /usr/local/apr-util]#ls
bin include lib

 

 

解压安装httpd包

指定具体的安装路径;支持动态模块加载机制;支持ssl功能;支持cgi;依赖于zilib,用来压缩页面用;依赖pcre,更强大的正则表达式;

[root@localhost ~]#tar -xf httpd-2.4.23.tar.gz 
[root@localhost ~]#cd httpd-2.4.23
[root@localhost ~/httpd-2.4.23]#./configure --prefix=/usr/local/httpd24 -enable-so -enable-ssl --enable-cgi --enable-rewrite --enable-modules=most 
--enable-mpms-shared=all --with-mpm=prefork --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
[root@localhost ~/httpd-2.4.23]#cd /usr/local/httpd24/
[root@localhost /usr/local/httpd24]#ls
bin build cgi-bin conf error htdocs icons include logs man manual modules

 

 

能够经过自带的命令启动,自带的服务控制脚本:apchectl命令的目录:/usr/local/apache24/bin,不能直接使用apachectl,由于默认是去/usr/sbin/目录下面找的

[root@localhost /usr/local/httpd24/bin]#./apachectl start

 

 

若是想直接使用命令,不用每次都输入路径全名,将这个路径添加到环境变量中,必须放在前面,寻找命令是从左往右,若是找到第一个apachctl命令,则不会去/sbin/目录下面找系统自带的命令,想永久有效的话将这条命令放在/etc/profile.d/httpd.sh文件,文件名必须以.sh结尾,文件名本身起,不会当即生效,可是新登陆用户有效,

能够经过hash命令查看缓存的命令,能够看到命令的全路径,

[root@localhost ~]#apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. 
httpd (pid 46798) already running
[root@localhost ~]#hash
hits    command
   1    /usr/local/httpd24/bin/apachectl

 

 

 

默认的配置文件在apache24/conf目录下面,若是想要放在/etc/http24目录下面,编译安装的时候加上--sysconfdir=/etc/httpd24,从新编译

[root@localhost ~/httpd-2.4.23]#make clean       #命令能够清除源码包中的全部的中间文件和生成的可执行文件的,可是若是已经执行了make && make install 命令,则复制到目标路径的文件不会被删除
[root@localhost ~/httpd-2.4.23]#./configure ...... --sysconfdir=/etc/httpd24 
[root@localhost ~/httpd-2.4.23]#make && make install

 

输出头文件

[root@localhost /usr/include]#ln -sv /usr/local/httpd24/include /usr/include/httpd
`/usr/include/httpd' -> `/usr/local/httpd24/include'
[root@localhost /usr/include]#ll httpd 
lrwxrwxrwx. 1 root root 26 Oct 11 15:49 httpd -> /usr/local/httpd24/include

 

导出库文件:vim /etc/ld.so.conf.d/httpd.conf 将路径写入,可是没有发现库文件

 

 

制做服务控制脚本,可是制做比较麻烦,直接使用一个现成的服务脚本改

[root@localhost ~]#cd /etc/rc.d/init.d
[root@localhost /etc/rc.d/init.d]#cp httpd httpd24
[root@localhost /etc/rc.d/init.d]#vim httpd24
 26 if [ -f /etc/sysconfig/httpd ]; then   #这里咱们不用加载这个配置文件,直接将这三行删除就能够
 27         . /etc/sysconfig/httpd
 28 fi
 39 apachectl=/usr/local/httpd24/bin/apachectl  #命令路径
 40 httpd=${HTTPD-/usr/local/httpd24/bin/httpd}  #主命令路径
 41 prog=httpd
 42 pidfile=${PIDFILE-/usr/local/httpd24/logs/httpd.pid} 
 43 lockfile=${LOCKFILE-/var/lock/subsys/httpd24}

[root@localhost /etc/rc.d/init.d]#chkconfig --add httpd24  #将服务加载
[root@localhost /etc/rc.d/init.d]#chkconfig --list httpd24
httpd24            0:off    1:off    2:off    3:off    4:off    5:off    6:off
[root@localhost /etc/rc.d/init.d]#service httpd24 start
Starting httpd: 
[root@localhost /etc/rc.d/init.d]#service httpd24 stop
Stopping httpd:                                            [  OK  ]
[root@localhost /etc/rc.d/init.d]#service httpd24 restart
Stopping httpd:                                            [  OK  ]

 

若是要更改服务的工做模式

[root@localhost /usr/local/httpd24/conf]#vim httpd.conf  #确保可以加载对应的配置文件,去掉前面的注释
454 #Include conf/extra/httpd-mpm.conf  #去掉注释
135 LoadModule mpm_prefork_module modules/mod_mpm_prefork.so  #将这个改成本身要修改成的服务名称,
[root@localhost /usr/local/httpd24/conf/extra]#ls   在conf目录下面的extra目录里面有对应的模块控制,取消前面的注释,并使用本身制做的服务脚本重启服务,就能够启动,

 

 

 

 

 

p

相关文章
相关标签/搜索