1.
tar xvf apr-1.6.2.tar.gz
tar xvf apr-util-1.6.0.tar.gz
tar xvf httpd-2.4.28.tar.bz2
2.
cp -a apr-1.6.2 httpd-2.4.28/srclib/apr
cp -a apr-util-1.6.0 httpd-2.4.28/srclib/apr-util
3.
getent passwd apache查看apache帐户
groupadd -g 48 -r apache;useradd -r -u 48 -g apache -s /sbin/nologin -d /usr/share/httpd -c "Apache" apache 规范点的写法如此,也可以简单的写
useradd -r -d /app/httpd24 -m -s /sbin/nologin apache
4.
缺包装包
yum groupnstall 'development-tools'
yum install openssl-devel pcre-devel expat-devel
5.
cd 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
6.make -j 4 && make install
7.
path变量
vim /etc/profile.d/httpd.sh
PATH=/app/httpd24/bin:$PATH
. /etc/profile.d/httpd.sh
8.
vim /app/http24/conf/httpd.conf
User apache
Group apache
9.准备服务脚本
cd /etc/init.d
cp httpd httpd24
服务脚本httpd,这里改为httpd24以便区分。httpd为原httpd包自带的,rpm -q --scripts httpd查看之前的服务脚本。或者从别的地方拷一个。这里阿拉拷贝好了一个。
- #!/bin/bash
- #
- #httpdStartupscriptfortheApacheHTTPServer
- #
- #chkconfig:-8515
- #description:TheApacheHTTPServerisanefficientandextensible\
- #serverimplementingthecurrentHTTPstandards.
- #processname:httpd
- #config:/etc/httpd/conf/httpd.conf
- #config:/etc/sysconfig/httpd
- #pidfile:/var/run/httpd/httpd.pid
- #
- ###BEGININITINFO
- #Provides:httpd
- #required-Start:$local_fs$remote_fs$network$named
- #required-Stop:$local_fs$remote_fs$network
- #Should-Start:distcache
- #Short-Description:startandstopApacheHTTPServer
- #Description:TheApacheHTTPServerisanextensibleserver
- #implementingthecurrentHTTPstandards.
- ###ENDINITINFO
- #Sourcefunctionlibrary.
- ./etc/rc.d/init.d/functions
- if[-f/etc/sysconfig/httpd];then
- ./etc/sysconfig/httpd
- fi
- #StarthttpdintheClocalebydefault.
- HTTPD_LANG=${HTTPD_LANG-"C"}
- #Thiswillpreventinitlogfromswallowingupapass-phrasepromptif
- #mod_sslneedsapass-phrasefromtheuser.
- INITLOG_ARGS=""
- #SetHTTPD=/usr/sbin/httpd.workerin/etc/sysconfig/httpdtouseaserver
- #withthethread-based"worker"MPM;BEWARNEDthatsomemodulesmaynot
- #workcorrectlywithathread-basedMPM;notablyPHPwillrefusetostart.
- #Pathtotheapachectlscript,serverbinary,andshort-formformessages.
- apachectl=/usr/sbin/apachectl
- httpd=${HTTPD-/usr/sbin/httpd}
- prog=httpd
- pidfile=${PIDFILE-/var/run/httpd/httpd.pid}
- lockfile=${LOCKFILE-/var/lock/subsys/httpd}
- RETVAL=0
- STOP_TIMEOUT=${STOP_TIMEOUT-10}
- #Thesemanticsofthesetwofunctionsdifferfromthewayapachectldoes
- #things--attemptingtostartwhilerunningisafailure,andshutdown
- #whennotrunningisalsoafailure.Sowejustdoitthewayinitscripts
- #areexpectedtobehavehere.
- start(){
- echo-n$"Starting$prog:"
- LANG=$HTTPD_LANGdaemon--pidfile=${pidfile}$httpd$OPTIONS
- RETVAL=$?
- echo
- [$RETVAL=0]&&touch${lockfile}
- return$RETVAL
- }
- #Whenstoppinghttpd,adelay(ofdefault10second)isrequired
- #beforeSIGKILLingthehttpdparent;thisgivesenoughtimeforthe
- #httpdparenttoSIGKILLanyerrantchildren.
- stop(){
- status-p${pidfile}$httpd>/dev/null
- if[[$?=0]];then
- echo-n$"Stopping$prog:"
- killproc-p${pidfile}-d${STOP_TIMEOUT}$httpd
- else
- echo-n$"Stopping$prog:"
- success
- fi
- RETVAL=$?
- echo
- [$RETVAL=0]&&rm-f${lockfile}${pidfile}
- }
- reload(){
- echo-n$"Reloading$prog:"
- if!LANG=$HTTPD_LANG$httpd$OPTIONS-t>&/dev/null;then
- RETVAL=6
- echo$"notreloadingduetoconfigurationSyntaxerror"
- failure$"notreloading$httpdduetoconfigurationSyntaxerror"
- else
- #ForceLSBbehavIoUrfromkillproc
- LSB=1killproc-p${pidfile}$httpd-HUP
- RETVAL=$?
- if[$RETVAL-eq7];then
- failure$"httpdshutdown"
- fi
- fi
- echo
- }
- #Seehowwewerecalled.
- case"$1"in
- start)
- start
- ;;
- stop)
- stop
- ;;
- status)
- status-p${pidfile}$httpd
- RETVAL=$?
- ;;
- restart)
- stop
- start
- ;;
- condrestart|try-restart)
- ifstatus-p${pidfile}$httpd>&/dev/null;then
- stop
- start
- fi
- ;;
- force-reload|reload)
- reload
- ;;
- graceful|help|configtest|fullstatus)
- $apachectl$@
- RETVAL=$?
- ;;
- *)
- echo$"Usage:$prog{start|stop|restart|condrestart|try-restart|force-reload|reload|status|fullstatus|graceful|help|configtest}"
- RETVAL=2
- esac
- exit$RETVAL
更改相关路径
vim httpd24
apachectl=/app/httpd24/bin/apachectl
httpd={HTTPD-/app/httpd24/bin/httpd}
pidfile={PIDFILE-/app/httpd24/logs/http.pid}
lockfile={LOCKFILE-/var/lock/subsys/httpd24}
启动服务
chkconfig --add httpd24
chkconfig httpd24 on
service httpd24 start
10.测试