CentOS 7, php скрипт через apache не разрешает имена хостов. Если я использую IP напрямую, это работает

Я установил стек LAMP поверх CentOS 7.

Если я пытаюсь разрешить имя с помощью php из командной строки, это работает, но если я выполняю этот скрипт через веб-сервер, оно не разрешает имя. Если я использую IP напрямую, это работает, в каждом случае.

Например:

$ip = gethostbyname('www.google.com');
echo "GOOGLE IP = " . $ip;  // it shows IP only via php-cli, not thru apache

Любая идея?

РЕДАКТИРОВАТЬ: отключение SE принудительно работает. Было бы полезно узнать, как настроить его для работы с включенной поддержкой SE.

0

Решение

Установите SELinux для разрешения

setenforce 0

Убедитесь, что установлены selinux-policy, selinux-policy-devel, setroubleshoot-server, setroubleshoot

yum install selinux-policy, selinux-policy-devel, setroubleshoot-server, setroubleshoot -y

затем хвост файла сообщений и grep для sealert

tailf /var/log/messages | grep sealert

Ваша проблема с SELinux будет выплюнута в виде

hostname setroubleshoot: SELinux is preventing httpd (httpd_t) "getattr" to /var/www/html/file1 (samba_share_t). For complete SELinux messages. run sealert -l 84e0b04d-d0ad-4347-8317-22e74f6cd020

так ты тогда просто беги sealert -l 84e0b04d-d0ad-4347-8317-22e74f6cd020 чтобы просмотреть вашу проблему с SELinux

Как только вы решите проблему, включите SELinux setenforce 1 и проверьте, решена ли ваша проблема. Если нет, то повторите шаги.

Более подробную информацию о Sealert можно найти на Сайт Red Hat, просто не отключайте SELinux.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]