繁体   English   中英

通过apache的CentOS 7,php脚本无法解析主机名。 如果我直接使用ip则可以

[英]CentOS 7, php script via apache doesn't resolve host names. If I use ip directly it works

我已经在CentOS 7上安装了LAMP堆栈。

如果我尝试从命令行通过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并检查是否已解决问题。 如果不是,则重复步骤。

可以在Red Hat的网站上找到关于Sealert的更多信息,只是不要禁用SELinux。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM