文章目录
- 背景信息
- 操作步骤
- 构建rpm包
- 升级httpd
- 启动httpd报错及处理
- 缺少mod_systemd
- 缺少mod_cgi
 
 
- 相关文件
背景信息
由于2.4.37版本httpd有安全漏洞,需要升级到2.4.57版本,2.4.57版本是当前最新的版本,只具备源码包,不具备rpm包,而原有的httpd是zabbix配套的,为rpm版本的包。最简单的方式就是进行rpm包的升级,这样也便于后期维护。
基于上述的需求,需要先构建出2.4.57的rpm包,然后使用rpm包升级httpd并解决httpd升级后的问题。
操作步骤
构建rpm包
官网 下载链接为 https://dlcdn.apache.org/httpd/httpd-2.4.57.tar.bz2
安装rpmbuild命令
# 安装rpmbuild命令
yum install rpmbuild
yum install rpmdevtools
# 安装基础依赖
yum -y install epel-release
yum -y install libuuid-devel apr-devel apr-util-devel openldap-devel lua-devel libxml2-devel
# 构建rpm包
rpmbuild -tb httpd-2.4.57.tar.bz2
# 生成的rpm包在如下目录
[root@hadoop01 ~]# ls /root/rpmbuild/RPMS/x86_64/
httpd-2.4.57-1.x86_64.rpm            httpd-manual-2.4.57-1.x86_64.rpm     mod_lua-2.4.57-1.x86_64.rpm
httpd-debuginfo-2.4.57-1.x86_64.rpm  httpd-tools-2.4.57-1.x86_64.rpm      mod_proxy_html-2.4.57-1.x86_64.rpm
httpd-devel-2.4.57-1.x86_64.rpm      mod_authnz_ldap-2.4.57-1.x86_64.rpm  mod_ssl-2.4.57-1.x86_64.rpm
构建rpm包的报错处理: 会报错说缺少/root/rpmbuild/BUILDROOT/httpd-2.4.57-1.x86_64/usr/lib64/httpd/modules/mod_mpm_event.so

解决办法: 打开两个终端 一个执行rpmbuild命令 另外一个准备好cp命令 把老的httpd的该模块复制过去 一直执行该命令 知道提示是否覆盖
 cp /etc/httpd/modules/mod_mpm_event.so /root/rpmbuild/BUILDROOT/httpd-2.4.57-1.x86_64/usr/lib64/httpd/modules/
升级httpd
# 1 备份httpd配置文件
cd /etc
cp -r httpd httpd.old
# 2 升级httpd 切换到上述构建好的rpm包的目录里
cd /root/rpmbuild/RPMS/x86_64/
yum -y localupdate httpd-2.4.57-1.x86_64.rpm
# 3 问题解决
如果遇到说某个东西冲突的 可以使用rpm命令 卸载对应的低版本软件包 再执行上述的 localupdate命令
启动httpd报错及处理
将httpd配置文件还原
mv /etc/httpd /etc/httpd.new
mv /etc/httpd.old /etc/httpd
缺少mod_systemd
启动httpd服务 报错如下
 Starting httpd: httpd: Syntax error on line 56 of /etc/httpd/conf/httpd.conf: Syntax error on line 12 of /etc/httpd/conf.modules.d/00-systemd.conf: Cannot load modules/mod_systemd.so
解决办法 : 下载2.4.57的源码包 编译安装一下 然后复制mod_systemd.so到现在的httpd的modules目录里
下载地址: https://dlcdn.apache.org/httpd/httpd-2.4.57.tar.gz
步骤如下
# 1 解压源码包
tar -xf httpd-2.4.57.tar.gz
cd httpd-2.4.57
# 2 安装基础依赖
yum -y install subversion autoconf libtool python expat-devel pcre-devel systemd-devel gcc-c++ make
# 3 configure 安装目录随意写
./configure --enable-systemd --prefix=/opt/httpd
# 4 安装
make && make install
# 5 复制mod_systemd.so
cp /opt/httpd/modules/mod_systemd.so /etc/httpd/modules/
此问题解决 出现了新的问题 报错: Starting httpd: httpd: Syntax error on line 56 of /etc/httpd/conf/httpd.conf: Syntax error on line 12 of /etc/httpd/conf.modules.d/01-cgi.conf: Cannot load modules/mod_cgi.so into server: libc.so.12: cannot open shared object file: No such file or directory
缺少mod_cgi
重新编译httpd 增加cgi
# 1 进入解压后的目录
cd httpd-2.4.57
# 2 安装基础依赖
yum -y install subversion autoconf libtool python expat-devel pcre-devel systemd-devel gcc-c++ make
# 3 configure 安装目录随意写
./configure --enable-systemd --prefix=/opt/httpd
# 4 安装
make && make install
# 5 复制mod_cgi.so
cp /data/app/httpd/modules/mod_cgi.so /etc/httpd/modules/
再次启动httpd 成功
 
zabbix也可以正常访问 如下图
 
相关文件
modules文件
[root@hadoop01 httpd-2.4.57]# ls /etc/httpd/modules/
lua_apr.o               mod_authz_owner.so     mod_ext_filter.so           mod_mpm_prefork.so     mod_session_dbd.so
lua_config.o            mod_authz_user.so      mod_file_cache.so           mod_mpm_worker.so      mod_session.so
lua_dbd.o               mod_autoindex.so       mod_filter.so               mod_negotiation.so     mod_setenvif.so
lua_passwd.o            mod_bucketeer.so       mod_headers.so              mod_proxy_ajp.so       mod_slotmem_plain.so
lua_request.o           mod_buffer.so          mod_heartbeat.so            mod_proxy_balancer.so  mod_slotmem_shm.so
lua_vmprep.o            mod_cache_disk.so      mod_heartmonitor.so         mod_proxy_connect.so   mod_socache_dbm.so
mod_access_compat.so    mod_cache.so           mod_include.so              mod_proxy_express.so   mod_socache_memcache.so
mod_actions.so          mod_cache_socache.so   mod_info.so                 mod_proxy_fcgi.so      mod_socache_redis.so
mod_alias.so            mod_case_filter_in.so  mod_lbmethod_bybusyness.so  mod_proxy_fdpass.so    mod_socache_shmcb.so
mod_allowmethods.so     mod_case_filter.so     mod_lbmethod_byrequests.so  mod_proxy_ftp.so       mod_speling.so
mod_asis.so             mod_cgid.so            mod_lbmethod_bytraffic.so   mod_proxy_hcheck.so    mod_status.so
mod_auth_basic.so       mod_cgi.so             mod_lbmethod_heartbeat.so   mod_proxy_http.so      mod_substitute.so
mod_auth_digest.so      mod_charset_lite.so    mod_log_config.so           mod_proxy_scgi.so      mod_suexec.so
mod_auth_form.so        mod_data.so            mod_log_debug.so            mod_proxy.so           mod_systemd.so
mod_authn_anon.so       mod_dav_fs.so          mod_log_forensic.so         mod_proxy_uwsgi.so     mod_system.so
mod_authn_core.so       mod_dav_lock.so        mod_logio.so                mod_proxy_wstunnel.so  mod_unique_id.so
mod_authn_dbd.so        mod_dav.so             mod_lua.a                   mod_ratelimit.so       mod_unixd.so
mod_authn_dbm.so        mod_dbd.so             mod_lua.la                  mod_reflector.so       mod_userdir.so
mod_authn_file.so       mod_deflate.so         mod_lua.lai                 mod_remoteip.so        mod_usertrack.so
mod_authn_socache.so    mod_dialup.so          mod_lua.o                   mod_reqtimeout.so      mod_version.so
mod_authz_core.so       mod_dir.so             mod_lua.so                  mod_request.so         mod_vhost_alias.so
mod_authz_dbd.so        mod_dumpio.so          mod_macro.so                mod_rewrite.so         mod_watchdog.so
mod_authz_dbm.so        mod_echo.so            mod_mime_magic.so           mod_sed.so
mod_authz_groupfile.so  mod_env.so             mod_mime.so                 mod_session_cookie.so
mod_authz_host.so       mod_expires.so         mod_mpm_event.so            mod_session_crypto.so
相关rpm包
[root@hadoop01 x86_64]# pwd
/root/rpmbuild/RPMS/x86_64
[root@hadoop01 x86_64]# ls
httpd-2.4.57-1.x86_64.rpm            httpd-manual-2.4.57-1.x86_64.rpm     mod_lua-2.4.57-1.x86_64.rpm
httpd-debuginfo-2.4.57-1.x86_64.rpm  httpd-tools-2.4.57-1.x86_64.rpm      mod_proxy_html-2.4.57-1.x86_64.rpm
httpd-devel-2.4.57-1.x86_64.rpm      mod_authnz_ldap-2.4.57-1.x86_64.rpm  mod_ssl-2.4.57-1.x86_64.rpm
文件链接
so文件
httpd 2.4.57 所有rpm包



















