CentOS7 docker httpd运行错误问题

上线的环境还是使用了国内最喜欢用的CentOS系统,这次升级了CentOS7.2(其实还是不够新),装了docker。软件现在走docker的形式进行部署。我看了很多dockerhub上的,其实都是用debian作为基础操作系统。不过我们自己制作的docker其实也是基于CentOS7.2的。说真的,在docker下,Ubuntu/debian应该有不少先天的优势。一来内核比较新,支持的特性会相对多一些。而CentOS7虽然也是最新的,但是内核还是3.10。结果就是在使用docker的时候,出现了导致httpd会自己退掉的问题。

在docker-entrypoint.sh直接运行了httpd:

/usr/sbin/httpd

由于已经将配置文件改成我们自己的了。这样运行其实是后台运行的,我们用monit来监控运行情况。

结果上线后出现了以下的错误:

(17)File exists: AH01762: Failed to create shared memory segment on file /run/httpd/authdigest_shm.7
(17)File exists: AH01760: failed to initialize shm - all nonce-count checking, one-time nonces, and MD5-sess algorithm disabled
AH00020: Configuration Failed, exiting

结果httpd就自己退掉了,如果手动进入docker内部手动启动,其实是可以成功运行的。后来一查,是因为docker启动后,并不会创建/run/httpd

因此在执行之前,加入以下一些处理:

rm -rf /run/httpd/
mkdir -p /run/httpd/
/usr/sbin/httpd

删除原有的,再次创建,保证/run/httpd目录的存在后,再运行httpd,即可解决该问题。

转载请注明: 转载自elkPi.com

本文链接地址: CentOS7 docker httpd运行错误问题

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Scroll to top