httpd的编译安装
APR
-
APR(Apache portable Run-time libraries,Apache可移植运行库)主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。在早期的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。
-
随着Apache的进一步开发,Apache组织决定将这些通用的函数独立出来并发展成为一个新的项目。这样,APR的开发就从Apache中独立出来,Apache仅仅是使用 APR而已。目前APR主要还是由Apache使用,由于APR的较好的移植性,因此一些需要进行移植的C程序也开始使用APR,开源项目比如用于服务器压力测试的Flood loader tester,该项目不仅仅适用于Apache,http://httpd.apache.org/test/flood
-
APR:Apache可移植运行库
以http为例:因为http不仅可以部署在linux上,同时也可以部署在windows系统上,但是由于OS不同,开发接口并不相同。APR可以为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。因为http是构建在APR上的,因此安装http必须安装对应的APR即http和APR的版本与之对应。
编译安装httpd-2.4.41
- 在centos7.6上编译安装httpd-2.4.41
apr:apache portable runtime,解决跨平台实现
【编译安装准备】
- 安装前准备开发包:
- 开发环境包:
相关包:gcc pcre-devel openssl-devel expat-devel
- 开发环境包:
- 下载源代码并解压缩:
httpd-2.4.41.tar.bz2
apr-1.7.0.tar.bz2
apr-util-1.6.1.tar.bz2
方法一
【安装APR】
- cd apr-1.7.0
- ./configure --prefix=/app/apr
- make && make install
【安装apr-util】
- cd …/apr-util-1.6.1
- ./configure --prefix=/app/apr-util --with-apr=/app/apr/
- make -j 2 && make install
【编译安装httpd】
- cd …/httpd-2.4.39
- ./configure --prefix=/app/httpd24 \
–enable-so \
–enable-ssl \
–enable-cgi \
–enable-rewrite \
–with-zlib \
–with-pcre \
–with-apr=/app/apr/ \
–with-apr-util=/app/apr-util/ \
–enable-modules=most \
–enable-mpms-shared=all \
–with-mpm=prefork - make -j 4 && make install
方法二
- mv apr-1.7.0 httpd-2.4.39/srclib/apr
- mv apr-util-1.6.1 httpd-2.4.39/srclib/apr-util
- cd httpd-2.4.39/
- ./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 - make && make install
使用方法二编译安装:
源码包:
data]# ls /data/
apr-1.7.0.tar.bz2
apr-util-1.6.1.tar.bz2
httpd-2.4.41.tar.gz
解压缩:
tar xf apr-1.7.0.tar.bz2
tar xf apr-util-1.6.1.tar.bz2
tar xf httpd-2.4.41.tar.gz
将APR安装包移动至httpd解压的包目录下
mv apr-1.7.0 httpd-2.4.41/srclib/apr
mv apr-util-1.6.1 httpd-2.4.41/srclib/apr-util
准备安装环境
yum install -y gcc pcre-devel openssl-devel expat-devel
configure
./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
make && make install
编译安装httpd完成之后的后续工作:
- Httpd编译过程:/app/httpd24/build/config.nice
- 自带的服务控制脚本:/app/httpd24/bin/apachectl
- 创建用户:useradd -s /sbin/nologin -r apache
- vim /app/httpd24/conf/httpd
user apache
group apache - vim /etc/profile.d/httpd24.sh
PATH=/app/httpd24/bin:$PATH - vim /etc/man_db.conf
MANDATORY_MANPATH /app/httpd24/man - 设置开机自动启动
vim /etc/rc.d/rc.local
/app/httpd24/bin/apachectl start
chmod +x /etc/rc.d/rc.local
server文件模板:
# vim /usr/lib/systemd/system/httpd24.service
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=man:httpd(8)
Documentation=man:apachectl(8)
[Service]
Type=forking
#EnvironmentFile=/etc/sysconfig/httpd
ExecStart=/app/httpd24/bin/httpd $OPTIONS -k start
ExecReload=/app/httpd24/bin/httpd $OPTIONS -k graceful
ExecStop=/bin/kill -WINCH ${MAINPID}
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target