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

标签 apache localhost centos7

我需要让 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/

相关文章:

linux - 用 .htaccess 重写长 url

ajax - Apache "_escaped_fragment_"重定向

Xcode 错误 : failed to launch [directory] -- invalid host string: 'localhost'

http - 使用 http 加载 html 时无法显示 "file"协议(protocol) url src 的 iframe

localhost - 如何从同一网络上的另一台计算机连接到这个本地主机?

shell - 生成哈希以匹配用户密码

java - 使用 Apache Http Client 4.5.3 从 jdk1.6.0_45 向 API 网关发出简单的 POST 请求

centos - CentOS 7脚本中变量的串联

centos - Sonarqube - 服务 Sonar 在 centos 7 中不支持 chkconfig

python - 神秘的 Apache Django WSGI 错误