设为首页 收藏本站
查看: 1410|回复: 0

centos 6.5 编译安装 httpd-2.4.10

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-10-14 10:49:04 | 显示全部楼层 |阅读模式
centos 6.5 编译安装 httpd-2.4.10
1. 小金子又来了,今天让我们折腾下编译httpd-2.4.10吧,废话不多,先看一下平台的基本环境
1
2
3
4
5
6
7
8
9
[iyunv@jinyongri src]# uname -r
2.6.32-431.el6.i686
[iyunv@jinyongri src]# uname -a
Linux jinyongri.com 2.6.32-431.el6.i686 #1 SMP Fri Nov 22 00:26:36 UTC 2013 i686 i686 i386 GNU/Linux
[iyunv@jinyongri src]# gcc -v
Using built-in specs.
Target: i686-redhat-linux
Thread model: posix
gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)



2. 下载相应的源码包
openssl-1.0.1i.tar.gz
apr-util-1.5.4.tar.bz2
apr-1.5.1.tar.gz
httpd-2.4.10.tar.bz2

源码包上传到 /root/src/ 目录下
wKioL1Qqki3yLvdaAAXKp1-A-vc214.jpg

确认一下目录:
1
2
3
4
5
6
[iyunv@jinyongri src]# ll
total 10916
-rw-r--r-- 1 root root 1020833 Sep 30 20:20 apr-1.5.1.tar.gz
-rw-r--r-- 1 root root  694427 Sep 30 20:20 apr-util-1.5.4.tar.bz2
-rw-r--r-- 1 root root 5031834 Sep 30 20:20 httpd-2.4.10.tar.bz2
-rw-r--r-- 1 root root 4422117 Sep 30 20:20 openssl-1.0.1i.tar.gz




首先安装openssl, 安装之前请确认一定要有gcc编译器啊, 没有的话自行yum install gcc
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
[iyunv@jinyongri src]# tar -xf openssl-1.0.1i.tar.gz
[iyunv@jinyongri src]# cd openssl-1.0.1i
#这里我们把文件都安装到 /usr/local/openssl-1.0.1i

##注意如果是64位操作系统环境:
[iyunv@jinyongri openssl-1.0.1i]# ./config --prefix=/usr/local/openssl-1.0.1i -fPIC no-gost

##注意如果是32位操作系统环境:
[iyunv@jinyongri openssl-1.0.1i]# ./config --prefix=/usr/local/openssl-1.0.1i



#####....此处省略1w字
making links in apps...
make[1]: Entering directory `/root/src/openssl-1.0.1i/apps'
make[1]: Nothing to be done for `links'.
make[1]: Leaving directory `/root/src/openssl-1.0.1i/apps'
making links in test...
make[1]: Entering directory `/root/src/openssl-1.0.1i/test'
make[1]: Nothing to be done for `links'.
make[1]: Leaving directory `/root/src/openssl-1.0.1i/test'
making links in tools...
make[1]: Entering directory `/root/src/openssl-1.0.1i/tools'
make[1]: Nothing to be done for `links'.
make[1]: Leaving directory `/root/src/openssl-1.0.1i/tools'
generating dummy tests (if needed)...
make[1]: Entering directory `/root/src/openssl-1.0.1i/test'
make[1]: Nothing to be done for `generate'.
make[1]: Leaving directory `/root/src/openssl-1.0.1i/test'

Configured for linux-elf. #出现这个信息的话, 就OK了, 如果报错可以Google下, 一定是缺了什么

#OK! 我们继续
[iyunv@jinyongri openssl-1.0.1i]# make && make install

####....此处又省略1w字
installing libssl.a
cp libcrypto.pc /usr/local/openssl-1.0.1i/lib/pkgconfig
chmod 644 /usr/local/openssl-1.0.1i/lib/pkgconfig/libcrypto.pc
cp libssl.pc /usr/local/openssl-1.0.1i/lib/pkgconfig
chmod 644 /usr/local/openssl-1.0.1i/lib/pkgconfig/libssl.pc
cp openssl.pc /usr/local/openssl-1.0.1i/lib/pkgconfig
chmod 644 /usr/local/openssl-1.0.1i/lib/pkgconfig/openssl.pc
#出现上面的信息就ok了, openssl安装完毕

#我们还需要安装pcre-devel
[iyunv@jinyongri openssl-1.0.1i]# yum -y install pcre-devel #即可完成安装


#下面开始安装apr-util-1.5.4
[iyunv@jinyongri openssl-1.0.1i]# cd ..
[iyunv@jinyongri src]# ll
total 10920
-rw-r--r--  1 root root 1020833 Sep 30 20:20 apr-1.5.1.tar.gz
-rw-r--r--  1 root root  694427 Sep 30 20:20 apr-util-1.5.4.tar.bz2
-rw-r--r--  1 root root 5031834 Sep 30 20:20 httpd-2.4.10.tar.bz2
drwxr-xr-x 22 root root    4096 Sep 30 20:27 openssl-1.0.1i
-rw-r--r--  1 root root 4422117 Sep 30 20:20 openssl-1.0.1i.tar.gz
[iyunv@jinyongri src]# tar -xf apr-1.5.1.tar.gz
[iyunv@jinyongri src]# cd apr-1.5.1
[iyunv@jinyongri apr-1.5.1]# ./configure --prefix=/usr/local/apr-1.5.1

####....此处又省略1w字
config.status: creating test/internal/Makefile
config.status: creating include/arch/unix/apr_private.h
config.status: executing libtool commands
rm: cannot remove `libtoolT': No such file or directory
config.status: executing default commands
#出现以上信息即可

[iyunv@jinyongri apr-1.5.1]# make && make install #开始安装

####....此处又省略1w字
/usr/bin/install -c -m 755 /root/src/apr-1.5.1/build/mkdir.sh /usr/local/apr-1.5.1/build-1
for f in make_exports.awk make_var_export.awk; do
        /usr/bin/install -c -m 644 /root/src/apr-1.5.1/build/${f} /usr/local/apr-1.5.1/build-1;
    done
/usr/bin/install -c -m 644 build/apr_rules.out /usr/local/apr-1.5.1/build-1/apr_rules.mk
/usr/bin/install -c -m 755 apr-config.out /usr/local/apr-1.5.1/bin/apr-1-config
#出现以上信息即可


#下面开始安装apr-util-1.5.4
[iyunv@jinyongri src]# tar -xf apr-util-1.5.4.tar.bz2
[iyunv@jinyongri src]# cd ./apr-util-1.5.4
[iyunv@jinyongri apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util-1.5.4
>  --with-apr=/usr/local/apr-1.5.1/ && make && make install
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/apr-util-1.5.4/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/usr/bin/install -c -m 644 aprutil.exp /usr/local/apr-util-1.5.4/lib
/usr/bin/install -c -m 755 apu-config.out /usr/local/apr-util-1.5.4/bin/apu-1-config
#OK apr-util-1.5.4 安装好了,
#我们该安装httpd-2.4.10了

[iyunv@jinyongri apr-util-1.5.4]# cd ..
[iyunv@jinyongri src]# ll
total 10928
drwxr-xr-x 28 1000 1000    4096 Sep 30 20:34 apr-1.5.1
-rw-r--r--  1 root root 1020833 Sep 30 20:20 apr-1.5.1.tar.gz
drwxr-xr-x 20 1000 1000    4096 Sep 30 20:42 apr-util-1.5.4
-rw-r--r--  1 root root  694427 Sep 30 20:20 apr-util-1.5.4.tar.bz2
-rw-r--r--  1 root root 5031834 Sep 30 20:20 httpd-2.4.10.tar.bz2
drwxr-xr-x 22 root root    4096 Sep 30 20:27 openssl-1.0.1i
-rw-r--r--  1 root root 4422117 Sep 30 20:20 openssl-1.0.1i.tar.gz
[iyunv@jinyongri src]# tar -xf httpd-2.4.10.tar.bz2
[iyunv@jinyongri src]# cd httpd-2.4.10
[iyunv@jinyongri httpd-2.4.10]#  ./configure --prefix=/usr/local/httpd24
                              --sysconfdir=/etc/httpd24
                              --enable-so
                              --enable-ssl
                              --enable-cgi
                              --enable-rewrite
                              --with-zlib
                              --with-pcre
                              --with-apr=/usr/local/apr-1.5.1/
                              --with-apr-util=/usr/local/apr-util-1.5.4/
                              --enable-modules=most
                             --enable-mpms-shared=all
                              --with-mpm=event
                              --with-ssl=/usr/local/openssl-1.0.1i

#..省略一万字
config.status: creating support/phf_abuse_log.cgi
config.status: creating support/split-logfile
config.status: creating build/rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating build/config_vars.sh
config.status: creating include/ap_config_auto.h
config.status: executing default commands
#这样就ok, 开始安装
[iyunv@jinyongri httpd-2.4.10]# make && make install
[iyunv@jinyongri httpd-2.4.10]# ln -sv /usr/local/httpd24/include /usr/include/httpd
#导出头文件
[iyunv@jinyongri httpd-2.4.10]# vim /etc/profile.d/httpd.sh
#添加下面这一行来加到环境变量中
export PATH=/usr/local/httpd24/bin:$PATH

#然后我们再配置下启动脚本
[iyunv@jinyongri httpd-2.4.10]# vim /etc/rc.d/init.d/httpd.24




启动脚本内容如下
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
Starting httpd:                                            [  OK  ]
[iyunv@jinyongri httpd-2.4.10]# cat /etc/rc.d/init.d/httpd.24
#!/bin/bash
#
# httpd        Startup script for the Apache HTTP Server
#
# chkconfig: - 85 15
# description: The Apache HTTP Server is an efficient and extensible  
#          server implementing the current HTTP standards.
# processname: httpd
# config: /etc/httpd/conf/httpd.conf
# config: /etc/sysconfig/httpd
# pidfile: /var/run/httpd/httpd.pid
#
### BEGIN INIT INFO
# Provides: httpd
# Required-Start: $local_fs $remote_fs $network $named
# Required-Stop: $local_fs $remote_fs $network
# Should-Start: distcache
# Short-Description: start and stop Apache HTTP Server
# Description: The Apache HTTP Server is an extensible server
#  implementing the current HTTP standards.
### END INIT INFO

# 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/httpd24/bin/apachectl
httpd=/usr/local/httpd24/bin/httpd
prog=httpd
pidfile=/usr/local/httpd24/logs/httpd.pid
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}

# The semantics of these two functions differ from the way apachectl does
# things -- attempting to start while running is a failure, and shutdown
# when not running is also a failure.  So we just do it the way init scripts
# are expected to behave here.
start() {
        echo -n $"Starting $prog: "
        LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch ${lockfile}
        return $RETVAL
}

# When stopping httpd, a delay (of default 10 second) is required
# before SIGKILLing the httpd parent; this gives enough time for the
# httpd parent to SIGKILL any errant children.
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
}

# See how we were called.
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
2
3
4
5
6
#给服务脚本执行权限
[iyunv@diguojin ~]# chmod +x /etc/rc.d/init.d/httpd.24
#配置主机名信息
[iyunv@jinyongri httpd-2.4.10]# vim /etc/httpd24/httpd.conf
#添加如下内容
ServerName diguojin #注意这里第二段填写自己服务器的主机名




尝试启动服务
1
2
3
4
[iyunv@jinyongri httpd-2.4.10]# service httpd.24 start
Starting httpd:                                            [  OK  ]
[iyunv@jinyongri httpd-2.4.10]# service httpd.24 stop
Stopping httpd:                                            [  OK  ]



用浏览器试试看
wKiom1Qqqczw-7gNAAGLQ1BKcpU304.jpg



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-25951-1-1.html 上篇帖子: centos 6.5 编译安装 mysql 5.5.40 下篇帖子: 搭建完全分离式LNMP平台的简单案例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表