- 论坛徽章:
- 0
|
本帖最后由 jackluo2013 于 2014-11-13 15:06 编辑
同一个页面多次刷新几次,就出现了这个问题
[2014-11-13 14:34:36] ERROR - file: tracker_client.c, line: 863, send data to tracker server 192.168.1.7:22122 fail, errno: 9, error info: Bad file descriptor
[2014-11-13 14:34:36] ERROR - file: connection_pool.c, line: 110, connect to :0 fail, errno: 22, error info: Invalid argument
[2014-11-13 14:34:36] ERROR - file: tracker_client.c, line: 863, send data to tracker server 192.168.1.7:22122 fail, errno: 9, error info: Bad file descriptor
=====================================================================================
Fatal error: Uncaught exception 'Exception' with message 'cannot connect to storage server: :[Invalid argument' in /home/wwwroot/ifast.php:48 Stack trace: #0
=================================================================================================
[2014-11-13 14:35:33] ERROR - file: storage_nio.c, line: 282, client ip: 192.168.1.3, recv timeout, recv offset: 0, expect length: 0
[2014-11-13 14:35:34] ERROR - file: storage_nio.c, line: 282, client ip: 192.168.1.3, recv timeout, recv offset: 0, expect length: 0
[2014-11-13 14:35:35] ERROR - file: storage_nio.c, line: 282, client ip: 192.168.1.3, recv timeout, recv offset: 0, expect length: 0
================================================================================================
PHP客户端是这样子写的
-----------------------------------------------------------------------------------------------------------------------------
<?php
class IFdfs
{
static $_instance; //单例
private $_fdfs; //FastDFS 类对象
private $tracker_host; //tracker ip_addr
private $tracker_port; //tracker port
private $group = null; //storage中的组名,可以为空
private $tracker; //type:array 客户端连接跟踪器(tracker)返回的tracker服务端相关信息
private $storage; //type:array 客户端连接存储节点(storage)返回的storage服务端相关信息
private $debug = true; //错误控制false/true
/*
localfile 本地文件
group 组名
remotefile 、 masterfile 远程文件(服务器上的文件)
file_id 、 masterfile_id 文件id : file_id(masterfile_id)= group/remotefile(或masterfile)
$prefixname 从文件的标识
file_ext 文件的后缀名,不包含点'.'
meta 文件属性列表,可以包含多个键值对
*/
/**
* 构造方法
*/
private function __construct()
{
if (!extension_loaded('fastdfs_client')){
throw new Exception('系统未安装FastDFS扩展');
//ie('系统未安装FastDFS扩展');
}
$this->_fdfs = new FastDFS();
// get a connected tracker server
$this->tracker = $this->_fdfs->tracker_get_connection();
if (!$this->tracker) {
throw new Exception('cannot connect to tracker server:[' . $this->_fdfs->get_last_error_no() . '] ' . $this->_fdfs->get_last_error_info());
}
// get the storage server info and connect to it
$this->storage = $this->_fdfs->tracker_query_storage_store();
$this->server = $this->_fdfs->connect_server($this->storage['ip_addr'], $this->storage['port']);
if ($this->server === false) {
//这儿就要报错了
throw new Exception('cannot connect to storage server' . $this->storage['ip_addr'] . ':' . $this->storage['port'] . ' :[' . $this->_fdfs->get_last_error_info());
$this->halt();
}
$this->storage['sock'] = $this->server['sock'];
}
public static function getInstance() {
if( ! (self: _instance instanceof self) ) {
self: _instance = new self();
}
return self: _instance;
}
private function __clone(){}
}
//调用
$fastdfs = IFdfs::getInstance(); |
|