需要安装的依赖软件包
1、apr Apache可移植运行库,下载地址:http://mirror.bit.edu.cn/apache/apr
2、apr-util 下载地址:http://mirror.bit.edu.cn/apache/apr
3、pcre 支持正则,下载地址:https://ftp.pcre.org/pub/pcre/
4、openssl 下载地址:https://www.openssl.org/source/old/1.1.1/
5、zlib 下载地址:http://www.zlib.net/fossils/
参考Apache官方文档安装指南:http://httpd.apache.org/docs/2.4/install.html
解压
下载apache软件包,下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/
# mkdir /opt/packages # mkdir /opt/softwares
# mkdir /opt/softwares/src
# tar xfz httpd-2.4.48.tar.gz -C /opt/softwares/src # tar xfz pcre-8.44.tar.gz -C /opt/softwares/src
# tar xfz apr-1.7.0.tar.gz -C /opt/softwares/src/ # tar xfz apr-util-1.6.1.tar.gz -C /opt/softwares/src/
安装过程
1、安装pcre
# cd /opt/softwares/src/pcre-8.44/ # ./configure --prefix=/opt/softwares/pcre-8.44 # make && make install
2、安装zlib
# cd /opt/softwares/src/zlib-1.2.11/ # ./configure --prefix=/opt/softwares/zlib # make && make install
3、安装openssl
# cd /opt/softwares/src/openssl-1.1.1j/ # ./config -fPIC --prefix=/opt/softwares/openssl enable-shared # make && make install
安装后备份之前版本的openssl,调整动态库路径
# which openssl /usr/bin/openssl ### 备份 # mv /usr/bin/openssl{,.old} # mv /etc/ssl{,.bak} #删除配置文件
修改openssl的库文件路径
# echo "/opt/softwares/openssl/lib" >> /etc/ld.so.conf # ldconfig -v # 使配置生效
设置openssl命令的软链接,并验证
# ln -s /opt/softwares/openssl/bin/openssl /usr/local/bin/openssl # openssl version -a OpenSSL 1.1.1j 16 Feb 2021
4、安装httpd
将apr-和apr 移动到下,并去掉版本号
# cd /opt/softwares/src/httpd-2.4.48/ # ./configure --prefix=/opt/softwares/http-2.4.48 --enable-so --enable-so --enable-ssl --with-ssl=/opt/softwares/openssl --enable-cgi --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-mpm=event --with-pcre=/opt/softwares/pcre-8.44 --with-zlib=/opt/softwares/zlib --with-apr=/opt/softwares/apr --with-apr-util=/opt/softwares/apr-util --enable-expires --enable-deflate --prefix=/opt/softwares/http-2.4.48 //指定apache的安装路径 --enable-so //这个是支持动态共享模块 --enable-rewrite //支持URL重写 --enable-ssl //支持ssl --with-ssl=/opt/softwares/openssl //这个是指定openssl的安装位置 --enable-cgi //启用cgi --enable-modules=most // 指明要静态编译到httpd二进制文件的模块 all或者most,all代表包含所有的模块 most代表大部分的模块 --enable-mods-shared=most // 指明要以DSO方式编译的模块,all代表全部,most代表大部分 --enable-mpms-shared=all // 启用MPM所有支持的模式,这样event,worker,prefork就会以模块化的方式安装,要用哪个就在httpd.conf里面配置就好了 --with-mpm=event // 指定启用mpm模式,默认使用enevt模式,在apache的早期版本2.0默认prefork,2.2版本是worker 2.4版本是event. --with-pcre=/opt/softwares/pcre // 支持 pcre --with-z=/opt/softwares/zlib // 使用 zlib 压缩库 --with-apr=/opt/softwares/apr // 指定 apr 的安装路径 --with-apr-util=/opt/softwares/apr-util // 指定 apr-util 的安装路径 --enable-expires // 激活彧通过配置文件控制 HTTP 的“Expires:”和“Cache-Control:”头内容,即对网站图片、js、css 等内容,提供客户端浏览器缓存设置 --enable-deflate // 提供对内容的压缩传输编码支持,一般是 html、js、css 等内容的站点。使用此参数会打打提高传输速度,提升访问者访问的体验。在生产环境中,这是 apache 调优的一个重要选项之一
make报错
collect2: error: ld returned 1 exit status make[2]: *** [htpasswd] Error 1 make[2]: Leaving directory `/opt/softwares/src/httpd-2.4.48/support' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/opt/softwares/src/httpd-2.4.48/support' make: *** [all-recursive] Error
解决办法
将解压出来的 apr-1.7.0 和 apr-util-1.6.1 拷贝到 /opt/softwares/src/httpd-2.4.48/srclib/ 目录下,并且去掉版本号。并且在编译参数后加上 --with-included-apr
不去掉版本号会报错:configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.
# mv /opt/softwares/src/httpd-2.4.48/srclib/apr-1.7.0 /opt/softwares/src/httpd-2.4.48/srclib/apr # mv /opt/softwares/src/httpd-2.4.48/srclib/apr-util-1.6.1 /opt/softwares/src/httpd-2.4.48/srclib/apr-util
再次编译安装
# ./configure --prefix=/opt/softwares/http-2.4.48 --enable-so --enable-so --enable-ssl \
--with-ssl=/opt/softwares/openssl --enable-cgi --enable-modules=most --enable-mods-shared=most \
--enable-mpms-shared=all --with-mpm=event --with-pcre=/opt/softwares/pcre-8.44 \
--with-zlib=/opt/softwares/zlib --enable-expires --enable-deflate -with-included-apr
# make && make install
至此安装完成!