Systemctl 无法访问 httpd 的其他配置文件

Systemctl 无法访问 httpd 的其他配置文件

我有一个新设置的 RHEL 8.6,其中安装了 httpd(yum install httpd)。在 /etc/httpd/conf/httpd.conf 中,已挂载的 NFS 共享上包含其他配置:

IncludeOptional /cat/soft/apache/test_80.conf
IncludeOptional /cat/soft/apache/test_443.conf

通过 systemctl httpd start 启动时,不包含这些配置。如果使用“Include”而不是“IncludeOptional”,我会收到错误:

httpd[763958]: httpd: Syntax error on line 357 of /etc/httpd/conf/httpd.conf: Could not open configuration file /cat/soft/apache/test_80.conf: Permission denied

当我通过“/usr/sbin/httpd -k start”启动 httpd 时,一切正常,并且引用的配置文件也被加载。

[Unit]
Description=The Apache HTTP Server
Wants=httpd-init.service
After=network.target remote-fs.target nss-lookup.target httpd-init.service
Documentation=man:httpd.service(8)

[Service]
Type=notify
Environment=LANG=C

ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND
ExecReload=/usr/sbin/httpd $OPTIONS -k graceful
# Send SIGWINCH for graceful stop
KillSignal=SIGWINCH
KillMode=mixed
PrivateTmp=true

[Install]
WantedBy=multi-user.target

我不知道为什么 systemctl 不工作。

答案1

SELinux 可能是罪魁祸首。您可以通过运行以下命令允许 httpd 访问 NFS 共享

setsebool httpd_use_nfs on

您可以阅读有关 Apache 和 SELinux 交互的更多信息这里

相关内容