首页 » Apache » 正文

HTTPD源码编译中的坑

操作系统:CentOS 7
httpd版本:2.4.41
apr:1.6.5
apr-util:1.6.1
编译通过,执行apachectl start报错
错误信息类似于以下内容:
[Thu Dec 26 14:27:12.137887 2019] [:crit] pid 109618 Function not implemented: AH00141: Could not initialize random number generator
该问题主要出现在部分CentOS 7版本中
首先排查环境变量PATH中是否有特殊字符,中文字符等,如果有,取消掉
如果没有相应的特殊字符,那按照以下方法尝试解决

1、方法一

apr版本替换成1.6.5或者更旧的版本
经过测试,最新的(2019年12月26日)1.7.0版本会出现此错误,经测试1.6.5版本可用,其余版本未测试

2、方法二

采用yum方式安装aprapr-util,然后编译选项中指定选项
--with-apr=/usr 
--with-apr-util=/usr
经过测试yum方式安装的aprapr-util能成功运行httpd

3、方法三

在部分执行了yum update,但是选择了不更新kernel的系统环境中
或者安装的版本不是最新版的CentOS
但是执行了在线yum安装rpm包的操作系统环境中
解决方法1:
yum update kernel -y
解决方法2:
yum update -y
出现这个问题的主要原因是出现在部分CentOS 7操作系统的环境下,有的环境下不能更新kernel
(比如某些私有云环境中,因私有云软件底层原因,更新kernel会造成系统无法启动等故障)
但是需要在线安装程序包或者需要更新已经安装的程序包,这种情况就有可能会出现这种问题
上述三个方法都是针对此种环境而发现的解决方案

发表评论