Я установил стек 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.
Установите 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.
Других решений пока нет …