2014-3-1 01:34| 发布者: tianzc| 查看: 3263| 评论: 0
标题:MogileFS for PHP安装和测试(存档)
一、搭建MogileFS 关于MogileFS在扶凯的网站(http://www.php-oa.com/2010/09/26/perl-mogilefs-1.html)上有很详细的介绍,关于安装搭建我也只是简单描述。 Mysql server:27.17.28.133:3306 在三台机器上都安装 分别配置好 trackers = 27.17.28.133:7777 /etc/mogilefs/mogilefsd.conf (trackers) db_dsn = DBI:mysql:MogileFS:host=27.17.28.133 db_user = mogile db_pass = mogilepw listen = 27.17.28.133:7777 conf_port = 7777 query_jobs = 10 delete_jobs = 1 replicate_jobs = 5 reaper_jobs = 1 /etc/mogilefs/mogstored.conf (stored) maxconns = 10000 httplisten = 27.17.28.135:7500 mgmtlisten = 27.17.28.135:7501 docroot=/data/mogdata 配置mysql 初始化tracker 启动trackers 启动stored 二、文件存储 添加存储节点 添加存储设备 添加存储域 添加存储类 上传一个文件 三、mogileFS for PHP 下载mogilesFs的php扩展包:http://pecl.php.net/package/mogilefs,和其他php的扩展包一样的安装。 在php.ini中加载拓展 php中mogileFS模块的使用,在官方文档中的说明了貌似很陈旧,其用法还是直接看扩展包你的README吧。 <?php $client = new MogileFs(); //链接tracker服务器,指定存储域 $client--->connect('27.17.28.133', 7777, 'test.com'); //根据key来获取文件信息 //$stat_str=$client->fileInfo("memcached-1.4.13.tar.gz"); //根据key来获取文件保存路径 $stat_str=$client->get("memcached-1.4.13.tar.gz"); //奇怪,用官方的getPaths竟然报错次方法未定义 var_dump($stat_str); ?> 标题:尝试mogilefs for nginx的模块模块有个简单的文档 安装 #wget http://www.grid.net.ru/nginx/download/nginx_mogilefs_module-1.0.4.tar.gz #vim /data/app/nginx/conf/nginx.conf location /download/ { mogilefs_tracker 27.17.28.133:7777; mogilefs_domain test1; mogilefs_pass { proxy_pass $mogilefs_path; proxy_hide_header Content-Type; proxy_buffering off; } } 访问 http://nginx/download/mogilefs_key 就可以访问mogiles stored里的文件了,所以,最好是以文件名作为key存入mogilefs。 nginx中的访问控制,流量控制等对这个url同样有效。 关于upload 按照文档nginx.conf如下 location /upload/{ allow all; autoindex on; client_max_body_size 200m; client_body_temp_path /tmp; mogilefs_tracker 27.17.28.133:7777; mogilefs_domain test1; mogilefs_methods PUT DELETE; mogilefs_pass { proxy_pass $mogilefs_path; proxy_hide_header Content-Type; proxy_buffering off; } } 用curl模拟了delete的操作,好像没什么问题,tracker的mysql记录和两台stored的文件都删除了 但是put操作确发生了问题 追踪了一下nginx的debug日志: 补: diff --git a/ngx_http_mogilefs_module.c b/ngx_http_mogilefs_module.c index e229f47..a4d249d 100644 --- a/ngx_http_mogilefs_module.c +++ b/ngx_http_mogilefs_module.c @@ -483,6 +483,9 @@ ngx_http_mogilefs_put_handler(ngx_http_request_t *r) case FETCH: spare_location = mgcf->create_close_spare_location; ctx->state = CREATE_CLOSE; +#if defined nginx_version && nginx_version >= 8011 + r->main->count++; +#endif break; case CREATE_CLOSE: r->headers_out.content_length_n = 0; |