小编chi*_*lie的帖子

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

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

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

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

# yum install php-common
Run Code Online (Sandbox Code Playgroud)

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

'./configure'  '--with-openssl' '--enable-sockets' ...
Run Code Online (Sandbox Code Playgroud)

所以如果你问我这个看起来不错,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 …
Run Code Online (Sandbox Code Playgroud)

php sockets apache centos minecraft

3
推荐指数
1
解决办法
7272
查看次数

标签 统计

apache ×1

centos ×1

minecraft ×1

php ×1

sockets ×1