centos8 编译安装 httpd-2.4.43
安装apache 需先安装 三个组件才可以:
apr、apr-util 和 pcre;
下载地址 https://gitee.com/daxuesi/apache-installation-package
下载 安装包文件后,上传至 linux 上
1.安装apr
- [root@xt test]# tar -zxf apr-1.4.5.tar.gz
- [root@xt test]# cd apr-1.4.5
- [root@xt apr-1.4.5]# ./configure --prefix=/usr/local/apr
- [root@xt apr-1.4.5]# make && make install
2.安装apr-util
- [root@xt test]# tar -zxf apr-util-1.3.12.tar.gz
- [root@xt test]# cd apr-util-1.3.12
- [root@xt apr-util-1.3.12]# ./configure --prefix=/usr/local/apr-util
- -with-apr=/usr/local/apr/bin/apr-1-config
- [root@xt apr-util-1.3.12]# make && make install
3.安装pcre
- [root@xt test]#unzip -o pcre-8.10.zip
- [root@xt test]#cd pcre-8.10
- [root@xt pcre-8.10]#./configure --prefix=/usr/local/pcre
- [root@xt pcre-8.10]#make && make install
4. 将apr和apr-util 放到 apache安装目录下的srclib下 去掉版本号 改名为apr和apr-util
5.相关软件安装
注意:--with-z-dir=/usr/local/zlib命令使用zlib压缩网络数据 ;系统环境在未安装 zlib 的情况下 ,需要安装 zlib 程序
5.1安装 zlib
- [root@xt test]# tar -zxf zlib-1.2.11.tar.gz
- [root@xt test]# cd zlib-1.2.1
- [root@xt apr-1.4.5]# ./configure --prefix=/usr/local/zlib
- [root@xt apr-1.4.5]# make && make install
5.2 安装openssl 注意,必须在 apache之前安装不然缺少lib库 红色的部分不能缺少不然apache无法加载ssl库
- [root@xt test]# tar -zxf openssl-1.0.2j.tar.gz
- [root@xt test]# cd openssl-1.0.2j
- [root@xt apr-1.4.5]# ./config --prefix=/usr/local/ssl -g3 shared zlib-dynamic enable-camellia
- [root@xt apr-1.4.5]# make && make install
6. 通过命令执行下面脚本运行
./configure --prefix=/usr/local/apache --sysconfdir=/usr/local/apache/conf --enable-so --enable-ssl --with-ssl=/usr/local/ssl --enable-track-vars --enable-rewrite --with-z-dir=/usr/local/zlib --enable-mods-shared=most--with-included-apr --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre
注意:记得命令中每个--前面必须要有空格 不然 加了相当于没加
–prefix: httpd-2.4程序安装路径
–sysconf: 配置文件安装路径
–enable:所有的–enable后面都是模块,这里表示编译时启动这些模块。
7.运行安装命令 make 和 make install
不报错说明安装完成;
8.进入 /usr/local/apache/bin 目录下,运行命令启动服务
./apachectl -f /usr/local/apache/conf/httpd.conf -k start
9.出现错误:
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
解决方案:

:wq 退出
9.1 配置文件问题
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
ServerAdmin lixin1112003@126.com
ServerName localhost
ServerAlias localhost
ProxyPass / balancer://cluster/ lbmethod=byrequests stickysession=JSESSIONID|jsessionid nofailover=On
ProxyPassReverse / balancer://cluster/
#ErrorLog "/logs/error.log"
#CustomLog "/logs/access.log" common
<proxy balancer://cluster>
BalancerMember ajp://localhost:8019 loadfactor=1 route=tomcat_a smax=5 max=20 ttl=120 retry=300 timeout=15
BalancerMember ajp://localhost:9019 loadfactor=1 route=tomcat_b smax=5 max=20 ttl=120 retry=300 timeout=15
ProxySet lbmethod=byrequests
</proxy>
</VirtualHost>
说明 :
Include conf/extra/httpd-ssl.conf
ServerName localhost
ServerAlias localhost
ProxyRequests Off
ProxyPass / balancer://cluster/ lbmethod=byrequests stickysession=JSESSIONID|jsessionid nofailover=On
ProxyPassReverse / balancer://cluster/
#ErrorLog "/logs/error.log"
#CustomLog "/logs/access.log" common
<proxy balancer://cluster>
BalancerMember ajp://localhost:8019 loadfactor=1 route=tomcat_a smax=5 max=20 ttl=120 retry=300 timeout=15
BalancerMember ajp://localhost:9019 loadfactor=1 route=tomcat_b smax=5 max=20 ttl=120 retry=300 timeout=15
ProxySet lbmethod=byrequests
</proxy>
Syntax error on line 21 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/libexec/libssl.so into server: libssl.so.1.0.0.: cannot open shared object file: No such file or directory因为我们加载的模块是 mod_ssl.so
linux-vdso.so.1 => (0x00007fffdabfa000)
libssl.so.1.0.0 => not found
libcrypto.so.1.0.0 => not found
libuuid.so.1 => /lib64/libuuid.so.1 (0x00002ac2a25e7000)
librt.so.1 => /lib64/librt.so.1 (0x00002ac2a27eb000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00002ac2a29f5000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ac2a2c2d000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002ac2a2e48000)
libc.so.6 => /lib64/libc.so.6 (0x00002ac2a304d000)
/lib64/ld-linux-x86-64.so.2 (0x0000003ebc400000)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ssl/lib重新打开shell 输入 echo $LD_LIBRARY_PATH 可以看到路径ok

浙公网安备 33010602011771号