FastDFS安装和问题解决-全流程
这两天学习 Django, 练习项目用到了 FastDFS 分布式文件系统.
在安装 FastDFS 有遇到一些问题,就想着记录下(说不定以后用的到呢.)
操作系统
文章目录
一. 安装fastdfs依赖包
下载链接:官方地址 https://sourceforge.net/projects/libfastcommon/files/
- 解压下载的 libfastcommon_v1.04.tar.gz
- 进入 libfastcommon_v1.04.
- 执行 ./make.sh
-/make.sh: 153: ./make.sh: make: not found
- 解决方法:
sudo apt-get install gcc
- 解决方法:
- 执行 sudo ./make.sh install
二. 安装fastdfs
下载链接:官网 https://sourceforge.net/projects/fastdfs/files/FastDFS Server Source Code/FastDFS Server with PHP Extension Source Code V5.08/
- 解压缩 FastDFS.tar.gz
- 进入 FastDFS目录中
- 执行
./make.sh
- 执行
sudo ./make.sh install
三. 配置跟踪服务器
- 执行
sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
- 在/home/python/目录中创建目录 fastdfs/tracker
mkdir –p /home/kk/fastdfs/tracker
- 编辑/etc/fdfs/tracker.conf配置文件
sudo vim /etc/fdfs/tracker.conf
- 我的ubuntu是新装的没有 vim
- 需要安装 vim, 执行
sudo apt-get install vim
修改:base_path=/home/kk/fastdfs/tracker
- 需要安装 vim, 执行
- 我的ubuntu是新装的没有 vim
四. 配置存储服务器storage
sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
- 在/home/python/fastdfs/ 目录中创建目录 storage
mkdir –p /home/kk/fastdfs/storage
- 编辑/etc/fdfs/storage.conf配置文件
sudo vim /etc/fdfs/storage.conf
修改内容:base_path=/home/kk/fastdfs/storage
store_path0=/home/python/fastdfs/storage
tracker_server=自己ubuntu虚拟机的ip地址:22122
五. 启动tracker 和 storage
sudo service fdfs_trackerd start
sudo service fdfs_storaged start
六. 测试是否安装成功
sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
- 编辑/etc/fdfs/client.conf配置文件
sudo vim /etc/fdfs/client.conf
修改内容:base_path=/home/python/fastdfs/tracker
tracker_server=自己ubuntu虚拟机的ip地址:22122
- 上传文件测试:
fdfs_upload_file /etc/fdfs/client.conf 要上传的图片文件
如果返回类似group1/M00/00/00/rBIK6VcaP0aARXXvAAHrUgHEviQ394.jpg
的文件id则说明文件上传成功
七. 安装nginx及fastdfs-nginx-module
- nginx下载
- fastdfs-nginx-module下载
- 解压缩 nginx-1.8.1.tar.gz
- 解压缩 fastdfs-nginx-module_v1.16.tar.gz
- 进入nginx-1.8.1目录中
- 执行
-
sudo ./configure --prefix=/usr/local/nginx/ --add-module=fastdfs-nginx-module_v1.16.tar.gz解压后的目录的绝对路径/src
- 我的此处发生报错(错误是关于依赖文件的)
解决办法 (安装依赖文件) sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install openssl libssl-dev
sudo apt-get install zlib1g-dev
- 我的此处发生报错(错误是关于依赖文件的)
-
sudo make
- 这里又报错了
cc1: all warnings being treated as errors objs/Makefile:440: recipe for target 'objs/src/core
- 查找了网上的解决方法
进入objs目录,将Makefile中的-Werror去掉
- 这里又报错了
-
sudo make install
-
sudo cp fastdfs-nginx-module.tar.gz解压后的目录中src下的mod_fastdfs.conf /etc/fdfs/mod_fastdfs.conf
-
sudo vim /etc/fdfs/mod_fastdfs.conf
* 修改内容:txt connect_timeout=10 tracker_server=自己ubuntu虚拟机的ip地址:22122 url_have_group_name=true store_path0=/home/python/fastdfs/storage
sudo cp 解压缩的 FastDFS/conf 目录中的http.conf /etc/fdfs/http.conf
sudo cp 解压缩的 FastDFS/conf 目录中的mime.types /etc/fdfs/mime.types
-
sudo vim /usr/local/nginx/conf/nginx.conf
- 在http部分中添加配置信息如下:
server { listen 8888; server_name localhost; location ~/group[0-9]/ { ngx_fastdfs_module; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
- 在http部分中添加配置信息如下:
- 启动 nginx
sudo /usr/local/nginx/sbin/nginx
八. 使用python客户端上传测试
* 这里需要额外安装两个依赖库:
`` requests `` 和 `` mutagen ``
**windows安装 fdfs-client-py会出错**
解决方法: https://blog.****.net/qq_38183592/article/details/88364963 (在此感谢博客主的分享)
>>> from fdfs_client.client import Fdfs_client
>>> client = Fdfs_client('/etc/fdfs/client.conf')
>>> ret = client.upload_by_filename('text')
>>> ret
{'Group name':'group1','Status':'Upload successed.', 'Remote file_id':'group1/M00/00/00/
wKjzh0_xaR63RExnAAAaDqbNk5E8675.py','Uploaded size':'8.0KB','Local file name':'test'
, 'Storage IP':'上传地址IP'}