如何使用非标准端口以非root身份运行apache?

时间:2017-02-23 17:16:09

标签: apache localhost centos7

我需要让apache作为非root用户运行,监听端口8443,以便在CentOS 7.3系统上有一个可用于内部安全扫描的新网站(在localhost:8443上)。我只了解apache的基础知识(在Ubuntu上),而且我不是网络管理员,因此我不熟悉使其工作所需的许多选项/配置设置。

我有一个目录(/ webcontent)与我的网站内容(需要php),并可以在那里托管所需的各种conf文件。但是我很难通过正确设置httpd.conf来使apache作为本地用户运行,并启动:

httpd -f /webcontent/conf/httpd.conf

并且已将日志设置为写入/ webcontent / logs(通过ErrorLog参数),但它然后抱怨没有对/ run / httpd的写入权限,因此实际上没有开始:

  

[2月23日星期二11:59:51.289587 2017] [auth_digest:错误] [pid 25464]   (13)权限被拒绝:AH01762:无法创建共享内存段   在档案/run/httpd/authdigest_shm.25464

我想这只是我可能要运行的许多问题中的第一个,所以如果有人能指出httpd.conf(或其他地方?)中所需的特定配置设置来使这个场景工作,那就会非常感谢。或者有关于运行apache的非root实例进行测试的任何其他建议。

1 个答案:

答案 0 :(得分:0)

有点晚了,但我发现到目前为止还没有答案。我自己也遇到过这个问题。我的解决方案如下。

使用DefaultRuntimeDir指令覆盖默认的“/ run / httpd”目录。这是在httpd.conf中。例如:

DefaultRuntimeDir  "/my/local/rundir"

这会导致apache创建“/my/local/rundir/authdigest_shm.1234”

由于某些原因,这也不会覆盖默认的pid文件目录,因此请使用PidFile指令进行设置,例如:

PidFile "/my/local/rundir/httpd.pid"

您可能还想查看ServerRoot指令。