2012-08-28 25 views
3

我正在从脚本我试图运行以下命令:fwrite()将不允许的,但phpinfo()函数说它应该是

Notice: fwrite() [function.fwrite]: send of 7 bytes failed with errno=1 Operation not permitted in /home/thrawn/public_html/sorcero.us/MinecraftQuery.class.php on line 165 

然而,当我检查的phpinfo(),于allow_url_fopen是并且启用套接字支持。我一直无法找到任何指向可能导致此事的事情。

为了澄清,我没有写这个脚本。我对PHP的知识大多只是基础知识,但我足够了解这个理由,因为phpinfo()表示允许使用正确的东西。有问题的脚本在这里:https://github.com/xPaw/PHP-Minecraft-Query/blob/master/MinecraftQuery.class.php

+0

你在写什么? – nneonneo

+2

这是一个操作系统错误,而不是PHP引擎错误。 –

回答

4

fwrite()写入$this->socket并在private function WriteData()。在public function Connect()是一条线

$this->Socket = @FSockOpen('udp://' . $Ip, (int)$Port, $ErrNo, $ErrStr, $Timeout); 

这是该文件,其中$this->socket写入唯一的线。

而且,存在有时会出现没有一个错误已经打开在manpage for fsockopen()

UDP套接字的警告消息, 即使远程主机不可达。当您向套接字读取数据或从套接字写入数据时,该错误只会变为 。原因 因为UDP是一个“无连接”协议,这意味着 操作系统不会尝试建立一个连接到 套接字,直到它实际上需要发送或接收数据。

这可能是这种情况。尽管ip adddress或端口不可达,但套接字已创建。这会导致在尝试写入数据时出现错误消息。

所以为了解决这个问题,你需要做的,至少这些事情:

  • 确保IP地址和端口是正确的。
  • 确认服务器已启动并正在运行。
  • 确保IP地址和端口可达(不阻止任何防火墙)

我不知道正确的设置应该是什么。如果您在外部服务器上安装了该软件,请尝试使用本地计算机,以便验证IP地址和端口设置。

-3

好像权限错误,

尝试,

chmod -R folder_to_be_file_written 

然后执行PHP脚本

2

如果你检查你的PHP配置和问题依然存在,检查你的防火墙日志。

As Ignacio Vazquez-Abrams表示:这是一个操作系统错误。

就我而言,CSF阻止了传出连接。

相关问题