微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Php套接字,Apache和CentOS 6.3给出了权限被拒绝

我想要做的是运行一个简单的 PHP脚本,检查游戏服务器是否在线并从中获取一些信息.我在WAMP服务器的本地机器上运行完全相同的脚本,我只是取消注释PHP_openssl.dll和PHP_sockets.dll,并且 – 瞧 – 它按预期工作.

但后来我们的生产环境!我通常和Debian一起工​​作,但是我们的主机决定在我们的专用服务器上安装CentOS,因为NIC在Debian中失败了,而且这只是麻烦了.

我克服了一些问题,并留下了这个问题:如何修复PHP套接字?我读到我需要PHP-common,所以我安装了这个:

# yum install PHP-common

然后我检查了PHPinfo(),我得到了这个

'./configure'  '--with-openssl' '--enable-sockets' ...

所以如果你问我这个看起来很好,openssl和socket都已安装并且应该正常工作,但事实并非如此.我在Stack Overflow上找到了这个脚本:

<?PHP
//just in case
if (!extension_loaded('sockets')) {
die('The sockets extension is not loaded.');
}
echo '<p><strong>Establishing connection...</strong></p>';
$socket = socket_create(AF_INET,SOCK_STREAM,0);
if (!socket_connect($socket,"stackoverflow.com",80))
{
die('Socket error : '.socket_strerror(socket_last_error()));
}

echo '<p><strong>Connection successful!</strong></p>';

$request = join("\n",array(
"GET / HTTP/1.1","Connection: close","Host: stackoverflow.com","User-Agent: Mozilla/5.0 (Windows NT 6.1)","Accept: text/html,*/*;q=0.8",""));
socket_write($socket,$request,strlen($request));

$response = socket_read($socket,2048);


echo "<p><strong>This is the received data : </strong></p>";
echo '<pre>'.htmlentities($response).'</pre>';

socket_close($socket);

这个输出让我完全惊讶:

Establishing connection...

Connection successful!

This is the received data :

HTTP/1.0 408 Request Time-out
Cache-Control: no-cache
Connection: close
Content-Type: text/html

<html><body><h1>408 Request Time-out</h1>
Your browser didn't send a complete request in time.
</body></html>

但是,我的剧本还没有运作?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐