Centos 6 编译安装 Apache 2.4
安装软件包准备,需要安装apr 1.5.2、apr-util 1.5.4,如果要启用ssl需要安装openssl软件包,1,安装apr因为是编译安装,通过./configure --help命令查看相关选项。
1
2
3
# yum install -y gcc
# ./configure --prefix=/usr/local/apr
# make & make install
2,安装apr-util,在安装时需要指明apr的安装位置,以及--prefix路径
1
2
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
# make & make install
3,安装httpd2.4.23,需要安装pcre、pcre-devel,如果启用ssl需要安装openssl、openssl-devel(版本需要在0.9.8a以上版本)
1
2
# ./configure --prefix=/usr/local/httpd --sysconfdir=/etc/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-ssl --enable-modules=all
# make & make install
4,配置httpd
a,修改环境变量
在/etc/profile/创建httpd.sh,增加export PATH=/usr/local/httpd/bin:$PATH ,(./etc/profile.d/httpd.sh)导入环境变量。
b,包含库文件,创建软连接 ln -sv /usr/local/httpd/include /usr/local/include/httpd.
c,编辑man配置文件,添加httpd帮助文档,编辑/etc/man.config增加如下内容 MANPATH /usr/local/httpd/man
d,由于没有服务脚本,所以只能使用apachectl start命令执行启动。
如果出现如下报错AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message,需要编辑httpd.conf 增加ServerName localhost(主机名称),再重新启动即可。
ps -axu |grep httpd 可以看到httpd的进程,用浏览器打开即可看到“It works!”。
服务脚本如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/bin/bash
#
#description: httpd service
#chkconfig: - 85 15
. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/httpd ];then
. /etc/sysconfig/httpd
fi
HTTPD_LANG=${HTTPD_LANG-"C"}
INITLOG_ARGS=""
proc=httpd
apachectl=/usr/local/httpd/bin/apachectl
httpd=${httpd-/usr/local/httpd/bin/httpd}
pidfile=${pidfile-/var/run/httpd/httpd.pid}
lockfile=${lockfile-/var/lock/subsys/httpd}
STOP_TIMEOUT=${STOP_TIMEOUT-10}
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 ${STOP_TIMEOUT} $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=6
echo $"not reloading due to configuration syntax error"
failure $"not reloading $httpd due to configuration syntax error"
else
# Force LSB behaviour from killproc
LSB=1 killproc -p ${pidfile} $httpd -HUP
RETVAL=$?
if [ $RETVAL -eq 7 ]; then
failure $"httpd shutdown"
fi
fi
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status -p ${pidfile} $httpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart|try-restart)
if status -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
至此基本配置完成。
页:
[1]