1.安装fastdfs依赖包
1. 解压缩 libfastcommon-master.zip
2. 进入到 libfastcommon-master的目录中
3. 执行 ./make.sh
4. 执行 sudo ./make.sh install
2.安装fastdfs
1. 解压缩 fastdfs-master.zip
2. 进入到 fastdfs-master目录中
3. 执行 ./make.sh
4. 执行 sudo ./make.sh install
3.配置跟踪服务器tracker
1. sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
2. 在/home/python/目录中创建目录 fastdfs/tracker
mkdir –p /home/python/fastdfs/tracker
3. 编辑/etc/fdfs/tracker.conf配置文件
sudo vim /etc/fdfs/tracker.conf
修改 base_path=/home/python/fastdfs/tracker
4.配置存储服务器storage
1. sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
2. 在/home/python/fastdfs/ 目录中创建目录 storage
mkdir –p /home/python/fastdfs/storage
3. 编辑/etc/fdfs/storage.conf配置文件
sudo vim /etc/fdfs/storage.conf
修改内容:
base_path=/home/python/fastdfs/storage
store_path0=/home/python/fastdfs/storage
tracker_server=自己ubuntu虚拟机的ip地址:22122
5.启动tracker 和 storage
1.启动方式1
sudo fdfs_tracked /etc/fdfs/tracker.conf
sudo fdfs_storanged /etc/fdfs/tracker.conf
#如以上命令找不到fdfs_xxxxxx 选择方式2启动服务
2.启动方式2
sudo /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
sudo /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
#若2方式也找不到命令 选择方式3
3.方式3
cd /use/bin
sudo fdfs_trackerd /etc/fdfs/tracker.conf
sudo fdfs_storanged /etc/fdfs/storage.conf
6.测试是否安装成功
1. sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
2. 编辑/etc/fdfs/client.conf配置文件
sudo vim /etc/fdfs/client.conf
修改内容:
base_path=/home/python/fastdfs/tracker
tracker_server=自己ubuntu虚拟机的ip地址:22122
7.上传文件测试
fdfs_upload_file /etc/fdfs/client.conf 要上传的图片文件
fdfs_upload_file /etc/fdfs/client.conf /home/1.jepg
如果返回类似group1/M00/00/00/rBIK6VcaP0aARXXvAAHrUgHEviQ394.jpg的文件id则说明文件上传成功
8.安装nginx及fastdfs-nginx-module
前往/usr/local下创建nginx文件夹
cd /usr/local
sudo mkdir nginx
cd nginx
1. 解压缩 nginx-1.8.1.tar.gz 或者可以通过 wget https://nginx.org.download/nginx-1.9.9.tar.gz下载
2. 解压缩 fastdfs-nginx-module-master.zip
3. 进入nginx-1.8.1目录中
4. 执行
sudo ./configure --prefix=/usr/local/nginx/ --add-module=解压后fastdfs-nginx-module-master的目录的绝对路径/src
#如果报错为下类情况
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
#解决办法
需要安装pcre包。
sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev
你可能还需要安装
sudo apt-get install openssl libssl-dev
5.编译与安装
sudo make
#如果报错将对应的makefile文件夹中(如本文中在 /nginx-1.9.9/objs/Makefile) 找到 -Werrori 并去掉 在重新make即可
sudo make install
9.复制mod_fastdfs.conf
sudo cp fastdfs-nginx-module-master解压后的目录中src下的mod_fastdfs.conf /etc/fdfs/mod_fastdfs.conf
10.修改mod_fastdfs.conf配置项
sudo vim /etc/fdfs/mod_fastdfs.conf
修改内容:
connect_timeout=10
tracker_server=自己ubuntu虚拟机的ip地址:22122
url_have_group_name=true
store_path0=/home/python/fastdfs/storage
11.复制fastdfs-master/conf目录下文件到指定地方
sudo cp 解压缩的fastdfs-master/conf目录中的http.conf /etc/fdfs/http.conf
sudo cp 解压缩的fastdfs-master/conf目录中的mime.types /etc/fdfs/mime.types
12.修改nginx.conf配置项
sudo vim /usr/local/nginx/conf/nginx.conf
在http部分中添加配置信息如下:以下信息与原有server部分对齐
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;
}
}
13.启动nginx
sudo /usr/local/nginx/sbin/nginx
14.使用python客户端上传测试
1. workon django_py3
2. 进入fdfs_client-py-master.zip所在目录
3. pip install fdfs_client-py-master.zip
4.
>>> from fdfs_client.client import Fdfs_client
>>> client = Fdfs_client('/etc/fdfs/client.conf')
>>> ret = client.upload_by_filename('test')
>>> ret
{'Group name':'group1','Status':'Upload successed.', 'Remote file_id':'group1/M00/00/00/
wKjzh0_xaR63RExnAAAaDqbNk5E1398.py','Uploaded size':'6.0KB','Local file name':'test'
, 'Storage IP':'192.168.243.133'}
文档 https://github.com/jefforeilly/fdfs_client-py
15.其他问题补充
1.nginx关闭命令
sudo /usr/local/nginx/sbin/nginx -s stop
2.如需修改IP地址请修改以下文件(/etc/fdfs目录中)
client.conf
mod_fastdfs.conf
storage.conf
修改上述文件中tracker_server=自己的ip地址:22122
2.1 启动tracker,storage,nginx服务
3.执行如下命令测试是否成功
fdfs_upload_file /etc/fdfs/client.conf 要上传的图片文件
如果返回类似group1/M00/00/00/wKgDNV00cDeACNZQAAAgnaeGwNQ144.jpg的文件id则说明文件上传成功
4.在Linux浏览器中输入127.0.0.1:8888/group1/M00/00/00/wKgDNV00cDeACNZQAAAgnaeGwNQ144.jpg访问
如出现相应图片则说明一切ok
16.如第15点第4小点无图片,报错为400 bad request。请前往/etc/fdfs/mod_fastdfs.conf 中修改下列信息
url_have_group_name = false 改为true(使用组名访问)
17.重复15点第4小点,则显示出图片。