现在,我是一个关于Apache的完整n00b,我当然可以在当前问题上使用一些帮助。我在3个不同的系统上安装了httpd rpm(所有研华计算机,1台PC,1个高级TCA刀片,1个Compact PCI刀片,并且都安装了RHEL6)。我已经在其他安装中使用之前使用过的文件配置了Apache。当我发出命令
时# service httpd restart
一切顺利,我得到了这个输出:
Stopping httpd: [ OK ]
Starting httpd: httpd: apr_sockaddr_info_get() failed for <PC_Name>
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ]
现在,当我尝试通过Apache连接到计算机时,我得到了登录屏幕,询问用户名和密码,正如您所期望的那样。但是,它无法登录。当我查看/ var / log / httpd /中的error_log时,它会显示以下错误消息:
[Thu Sep 15 14:24:40 2011] [error] [client 192.168.10.175] (13)Permission denied: Could not open password file: /etc/shadow
[Thu Sep 15 14:24:40 2011] [error] [client 192.168.10.175] PAM: user 'root' - not authenticated: System error
在我看来,这可能是配置错误,也可能与权限有关。但我似乎无法找出哪个。另一个有趣的事实是,这仅适用于最后两个安装(高级TCA和Compact PCI),而不是第一个(Box PC),而所有3个安装完全相同。
我安装它的方式是从yum安装httpd,
# yum install httpd
接下来安装mod_auth_pam,这是配置所需的,
# yum install mod_auth_pam
然后我使用以前安装时获得的文件配置Apache(基本上只是从标准Apache安装中替换配置文件),之后我重新启动了Apache服务。
答案 0 :(得分:1)
对于此错误“apr_sockaddr_info_get()失败”
您需要正确设置主机名。
hostname actual-non-expired-domain-name.com
不要忘记在httpd.conf和/ etc / hosts中设置名称。
答案 1 :(得分:0)
我已经能够通过将SELinux设置为允许Apache请求来解决这个问题。这是通过发出以下命令来完成的:
semanage permissive -a http_t
Semanage是policycoreutils-python包中的一个实用程序。这应该与安装介质一起提供。