你好,游客 登录 注册 搜索
背景:
阅读新闻

Ubuntu安装FastDFS全程记录

[日期:2012-03-11] 来源:Linux社区  作者:chen861201 [字体: ]

Ubuntu安装FastDFS笔记,首先是准备工作:需要我们下载两个文件,

FastDFS_v3.06.tar.gz

libevent-2.0.17-stable.tar.gz

这里就不赘述他们的安装过程了,可是注意一点儿就是如果有需要HTTP连接的需要在make.sh中将#WITH_HTTPD=1改成WITH_HTTPD=1,然后在安装,当我在安装FastDFS时报错了:

  1. /home/FastDFS/FastDFS/tracker/../common/sched_thread.c:493: undefined reference to `pthread_create' ../common/pthread_func.o:   
  2. In function `init_pthread_lock': /home/FastDFS/FastDFS/tracker/../common/pthread_func.c:32: undefined reference to `pthread_mutexattr_init'   
  3. /home/FastDFS/FastDFS/tracker/../common/pthread_func.c:40: undefined reference to `pthread_mutexattr_settype'   
  4. /home/FastDFS/FastDFS/tracker/../common/pthread_func.c:57: undefined reference to `pthread_mutexattr_destroy' ../common/pthread_func.o:  
  5.  In function `init_pthread_attr': /home/FastDFS/FastDFS/tracker/../common/pthread_func.c:84: undefined reference to `pthread_attr_getstacksize'   
  6. /home/FastDFS/FastDFS/tracker/../common/pthread_func.c:115: undefined reference to `pthread_attr_setstacksize' ../common/pthread_func.o:   
  7. In function `create_work_threads': /home/FastDFS/FastDFS/tracker/../common/pthread_func.c:156: undefined reference to `pthread_create'   
  8. ../common/pthread_func.o:   
  9. In function `kill_work_threads': /home/FastDFS/FastDFS/tracker/../common/pthread_func.c:182: undefined reference to `pthread_kill'   
  10. collect2: ld 返回 1 make: *** [fdfs_monitor] 错误 1   

经过在网上的查找得知:其实是不同的系统中pthread位置不一样,做法就是找到你的系统中所需要的libpthread.so文件位置,直接find就可以找到了;

  1. root@ www.linuxidc.com:~# find / -name 'libpthread.a'  
  2. /usr/lib/i386-linux-gnu/xen/libpthread.a  
  3. /usr/lib/i386-linux-gnu/libpthread.a  
  4. root@ www.linuxidc.com:~# find / -name 'libpthread.so'  
  5. /usr/lib/i386-linux-gnu/libpthread.so  

接着直接在make.sh中找到这句话然后替换掉就可以了:

  1. if [ -f /usr/lib/libpthread.so ] || [ -f /usr/local/lib/libpthread.so ] || [ -f /usr/lib64/libpthread.so ] || [ -f /usr/lib/libpthread.a ] || [ -f /usr/local/lib/libpthread.a ] || [ -f /usr/lib64/libpthread.a ]; then   LIBS="$LIBS -lpthread"   

然后在进行编译就OK了。

  1. ./make.sh  
  2. ./make.sh install  
  3. Cd /home/FastDFS/FastDFS/conf/  

这里简单介绍一下FastDFS的工作流程,它有三部分组成tracker、storage、client,其中tracker是个仓库管理员管理storage的,tracker有自己独有的ip地址和端口号这个和重要,每个storage仓库都要通过ip和端口来连接到tracker上面去,由tracker统一管理。所以下面是他们的配置方法和过程:

  1. Vim tracker.conf  
  2. # the base path to store data and log files base_path=/home/FastDFS/FastDFS/tracker_info reserved_storage_space = 1GB  
  3. # HTTP settings http.disabled=false   
  4. # HTTP port on this tracker server http.server_port=8090   
  5. #use "#include" directive to include http other settings   
  6. #include http.conf   
  7.   
  8. Vim http.conf  
  9. # return the content of the file when check token fail   
  10. # default value is empty (no file sepecified) http.anti_steal.token_check_fail=/home/FastDFS/FastDFS/conf/anti-steal.jpg   
  11. vim /etc/fdfs/http.conf  
  12. # return the content of the file when check token fail  
  13. # default value is empty (no file sepecified) http.anti_steal.token_check_fail=/home/FastDFS/FastDFS/conf/anti-steal.jpg   

这时的tracker服务就配置好了,就可以直接启动了:看到端口号是22122的就知道他已经启动了。还有8090端口说明http也启动了

  1. Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name  
  2. tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN      9843/fdfs_trackerd  
  3. tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      1040/mysqld  
  4. tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      791/sshd  
  5. tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      920/cupsd  
  6. tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      9942/fdfs_storaged  
  7. tcp        0      0 0.0.0.0:23000           0.0.0.0:*               LISTEN      9942/fdfs_storaged  
  8. tcp        0      0 0.0.0.0:8090            0.0.0.0:*               LISTEN      

下面是配置storage相关信息

  1. root@ www.linuxidc.com:/home/FastDFS/FastDFS/conf/# vim storage.conf   
  2. # the name of the group this storage server belongs to group_name=dcifile1 client_bind=true   
  3. # the storage server port port=23000  
  4. # the base path to store data and log files 
 
  1. base_path=/home/FastDFS/FastDFS/storage_info   
  2. # store_path#, based 0, if store_path0 not exists, it's value is base_path   
  3. # the paths must be exist  
 
  1. store_path0=/home/FastDFS/FastDFS/storage_data   
  2. #store_path1=/home/yuqing/fastdfs2   
  3. # tracker_server can ocur more than once, and tracker_server format is   
  4. #  "host:port", host can be hostname or ip address tracker_server=10.5.110.234:22122   
  5. # the port of the web server on this storage server http.server_port=8888 http.trunk_size=256KB   
  6. # if need find content type from file extension name http.need_find_content_type=true   
  7. #use "#include" directive to include HTTP other settings   
  8. #include http.conf   
  9. root@ www.linuxidc.com:/home/FastDFS/FastDFS/# mkdir storage_info   
  10. root@ www.linuxidc.com:/home/FastDFS/FastDFS/# mkdir storage_data  
  11. root@ www.linuxidc.com:/home/FastDFS/FastDFS/# mkdir client_info  
  12. root@ www.linuxidc.com:/home/FastDFS/FastDFS/conf/# cd /usr/local/bin/  
  13. root@ www.linuxidc.com:/usr/local/bin/# fdfs_storaged /home/FastDFS/FastDFS/conf/storage.conf  
  14. root@ www.linuxidc.com:/home/FastDFS/FastDFS/conf/# vim client.conf  
  15. # the base path to store log files   
  16. base_path=/home/FastDFS/FastDFS/client_info  
  17. # tracker_server can ocur more than once, and tracker_server format is   
  18. #  "host:port", host can be hostname or ip address   
  19. tracker_server=10.5.110.234:22122   
  20. #standard log level as syslog, case insensitive, value list:   
  21. ### emerg for emergency   
  22. ### alert   
  23. ### crit for critical   
  24. ### error   
  25. ### warn for warning   
  26. ### notice   
  27. ## info   
  28. ### debug log_level=info   
  29. #HTTP settings   
  30. http.tracker_server_port=8090   
  31. #use "#include" directive to include HTTP other settiongs   
  32. #include http.conf   
  33. root@ www.linuxidc.com:/usr/local/bin/# fdfs_test /home/FastDFS/FastDFS/conf/client.conf upload  a.txt source ip address: 10.5.110.234  
  34. file timestamp=2012-03-11 11:29:59  
  35. file size=22  
  36. file crc32=2041760096  
  37. file url: http://10.5.110.234:8090/dcifile1/M00/00/00/CgVu6k9cHDf4SXnIAAAAFnmyyWA295_big.txt  

到这里算是完成了,相比较来说FastDFS还是相当容易配置成功的。加油……

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款