Не удается подключиться к серверу 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.