操作系统: 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 方式安装apr 和apr-util ,然后编译选项中指定选项
--with-apr=/usr
--with-apr-util=/usr
经过测试yum 方式安装的apr 和apr-util 能成功运行httpd
3、方法三
在部分执行了yum update ,但是选择了不更新kernel 的系统环境中
或者安装的版本不是最新版的CentOS
但是执行了在线yum 安装rpm 包的操作系统环境中
解决方法1:
yum update kernel -y
解决方法2:
yum update -y
出现这个问题的主要原因是出现在部分CentOS 7 操作系统的环境下,有的环境下不能更新kernel
(比如某些私有云环境中,因私有云软件底层原因,更新kernel 会造成系统无法启动等故障)
但是需要在线安装程序包或者需要更新已经安装的程序包,这种情况就有可能会出现这种问题
上述三个方法都是针对此种环境而发现的解决方案