编译安装httpd-2.4,server-status,ssl

1、编译安装前准备

由于httpd-2.4依赖于1.4+的apr,所以编译安装apr和apr-util
(1) 编译安装apr
# tar xf apr-1.5.0.tar.bz2
# cd apr-1.5.0
# ./configure --prefix=/usr/local/apr
# make && make install
(2) 编译安装apr-util
# tar xf apr-util-1.5.3.tar.bz2
# cd apr-util-1.5.3
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install
(3)yum install -y pcre-devel

2、编译安装httpd-2.4.9

./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
make && make install

3、提供SysV服务脚本

方法1:
直接拷贝RPM安装httpd(版本为2.2)的服务脚本到/etc/rc.d/init.d/httpd24
修改服务pidfile路径有两中方法,如下图片
 
技术分享
方法2:
技术分享
#!/bin/bash
#
# httpd Startup script for the Apache HTTP Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve # HTML files and CGI.
# processname: httpd
# config: /etc/httpd/conf/httpd.conf
# config: /etc/sysconfig/httpd
# pidfile: /var/run/httpd.pid
# Source function library.
./etc/rc.d/init.d/functions
if[-f /etc/sysconfig/httpd ];then
./etc/sysconfig/httpd
fi
# Start httpd in the C locale by default.
HTTPD_LANG=${HTTPD_LANG-"C"}
# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""
# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
# with the thread-based "worker" MPM; BE WARNED that some modules may not
# work correctly with a thread-based MPM; notably PHP will refuse to start.
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
start(){
echo -n $"Starting $prog: "
LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
RETVAL=$?
echo
[ $RETVAL =0]&& touch ${lockfile}
return $RETVAL
}
stop(){
echo -n $"Stopping $prog: "
killproc -p ${pidfile}-d 10 $httpd
RETVAL=$?
echo
[ $RETVAL =0]&& rm -f ${lockfile} ${pidfile}
}
reload(){
echo -n $"Reloading $prog: "
if! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null;then
RETVAL=$?
echo $"not reloading due to configuration syntax error"
failure $"not reloading $httpd due to configuration syntax error"
else
killproc -p ${pidfile} $httpd -HUP
RETVAL=$?
fi
echo
}
# See how we were called.
case"$1"in
start)
start
;;
stop)
stop
;;
status)
status -p ${pidfile} $httpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if[-f ${pidfile}];then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest|fullstatus)
$apachectl $@
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
exit 1
esac
exit $RETVAL
SysV脚本

 

服务脚本拷贝到/etc/rc.d/init.d/目录,命名为httpd24
# chmod +x /etc/rc.d/init.d/httpd    ==>而后为此脚本赋予执行权限
# chkconfig --add httpd24    ==>添加服务脚本
# vim /etc/profile.d/httpd24.sh ==>添加如下内容后# source /etc/profile.d/httpd24.sh
技术分享

4、修改pidfile文件路径

技术分享

5、开启虚拟主机并启用server status

主配置文件(httpd.conf)添加和删除注释
技术分享
技术分享
技术分享
生成server-status的访问帐号和密码
技术分享
http-vhostsl.conf文件中添加如下配置
技术分享
技术分享

6、新建CA并完成证书颁发

(umsak 077;openssl genrsa -out cakey.pem 8192)
openssl req -new -x509 -key ./private/cakey.pem -out cacert.pem -days 3655p
(umask 077;openssl genrsa -out httpd.key 4096)
openssl req -new -key httpd.key -out httpd.csr -days 365
openssl ca -in httpd.csr -out httpd.crt

7、开启SSL主机

主配置文件(httpd.conf)取消注释
技术分享
技术分享
# vim /etc/http24/extra/httpd-ssl.conf    ==>文件中修改相应内容如下图
技术分享
技术分享
 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。