歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu安裝FastDFS全程記錄

Ubuntu安裝FastDFS全程記錄

日期:2017/2/28 15:54:45   编辑:Linux教程

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. Vim http.conf
  8. # return the content of the file when check token fail
  9. # default value is empty (no file sepecified) http.anti_steal.token_check_fail=/home/FastDFS/FastDFS/conf/anti-steal.jpg
  10. vim /etc/fdfs/http.conf
  11. # return the content of the file when check token fail
  12. # 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還是相當容易配置成功的。加油……

Copyright © Linux教程網 All Rights Reserved