Не удается подключиться к серверу Apache на RHEL6

Проблема

Теперь, я полный n00b на Apache, и я, безусловно, мог бы помочь с моей текущей проблемой. Я установил httpd rpm в 3 разных системах (на всех компьютерах Advantech, 1 ПК с коробкой, 1 блейд-модуле Advanced 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, я получаю экран входа в систему с запросом имени пользователя и пароля, как и следовало ожидать. Тем не менее, он не может войти в систему. Когда я смотрю на error_log в /var/log/httpd/, он показывает это сообщение об ошибке:

[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

Мне кажется, что это либо ошибка конфигурации, либо она связана с разрешениями. И все же я не могу понять, какие именно. Еще один интересный факт заключается в том, что это относится только к двум последним установкам (Advanced TCA и Compact PCI), а не к первой (Box PC), в то время как все 3 установки одинаковы.

Дополнительная информация

То, как я это установил, было установить httpd из yum,

# yum install httpd

Затем установите mod_auth_pam, который необходим для конфигурации,

# yum install mod_auth_pam

Затем я настроил Apache с помощью файлов, которые я получил из предыдущих установок (что в основном просто заменяет файлы конфигурации из стандартной установки Apache), и после этого я перезапустил службу Apache.

2 ответа

Решение

Я смог решить эту проблему, установив SELinux для разрешения запросов Apache. Это делается с помощью следующей команды:

semanage permissive -a http_t

Semanage - это утилита из пакета policycoreutils-python. Это должно идти с установочной средой.

Для этой ошибки "apr_sockaddr_info_get() не удалось"

Вам необходимо правильно установить ваше имя хоста.

имя хоста actual-non-expired-domain-name.com

Не забудьте указать имя в вашем httpd.conf и в /etc/hosts.

Другие вопросы по тегам