我需要让 apache 以非 root 用户身份运行,监听端口 8443,以便在 CentOS 7.3 系统上有一个可用的新网站(在 localhost:8443 上)进行内部安全扫描。我只了解 apache 的基础知识(在 Ubuntu 上),而且我不是 Web 管理员,因此不熟悉使其正常工作所需的许多选项/配置设置。
我有一个目录 (/webcontent),其中包含我的网站内容(需要 php),并且可以在那里托管各种必要的 conf 文件。但是我在正确设置 httpd.conf 以使 apache 作为本地用户运行时遇到困难,启动时:
httpd -f /webcontent/conf/httpd.conf
并且已将日志设置为写入/webcontent/logs(通过 ErrorLog 参数),但它随后提示没有对/run/httpd 的写入权限,因此实际上不会启动:
[Thu Feb 23 11:59:51.289587 2017] [auth_digest:error] [pid 25464] (13)Permission denied: AH01762: Failed to create shared memory segment on file /run/httpd/authdigest_shm.25464
我想这只是我可能需要让它运行的许多问题中的第一个,所以如果有人能指出 httpd.conf(或其他地方?)中必要的特定配置设置以使这个场景起作用,那将不胜感激。或者对运行 apache 的非根实例进行测试有任何其他建议。
最佳答案
有点晚了,但我看到到目前为止还没有答案。我自己也遇到了这个问题。我的解决方案如下。
使用 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
指令。
关于apache - 如何使用非标准端口以非 root 身份运行 apache?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42422226/