我有一个新设置的 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 交互的更多信息这里