前期准备
1.安装依赖包
# 新装的ubuntu缺少gcc编译,需要先安装这个
sudo apt-get install build-essential
1.解压缩 libfastcommon-master.zip文件
2.进入到libfastcommon-master的目录中
3.执行 ./make.sh
4.执行 sudo ./make.sh install
1.解压缩 fastdfs-master.zip文件
2.进入到fastdfs-master的目录中
3.执行 ./make.sh
4.执行 sudo ./make.sh install( 安装完成后在/usr/bin/目录下有fdfs_trackerd文件,后续 启动的时候 要用 )
配置跟踪服务器tracker
1. sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
2.在 /home/python/目录创建目录 fastdfs/tracker
sudo mkdir -p /home/python/fastdfs/tracker
3.编辑/etc/fdfs/tracker.conf配置文件
sudo vim /etc/fdfs/tracker.conf
4.修改内容
bash_path=/home/python/fastdfs/tracker
配置存储服务器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
4.修改内容
base_path=/home/python/fastdfs/storage
store_path0=/home/python/fastdfs/storage
tracker_server=自己ubuntu虚拟机的ip地址:22122
启动
sudo /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
sudo /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
测试是否安装成功
1. sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
2.编辑/etc/fdfs/client.conf配置文件
sudo vim /etc/fdfs/client.conf
3.修改内容
base_path=/home/python/fastdfs/tracker
tracker_server=自己ubuntu虚拟机的ip地址:22122
4.上传文件测试
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf ~/Desktop/touxiang.jpg(要上传的文件)
如果返回类似group1/M00/00/00/rBCwA1_SVWqAEdUkAABA5jaIBAY570.jpg的文件id说明文件上传成功
此时我们上传的图片 数据就 保存在之前我们创建的storage目录下的data目录下 /home/python/fastdfs/storage/data
安装nginx及fastdfs-nginx-module
1.安装nginx之前需要提前安装一些依赖包
#openssl安装
sudo apt-get install openssl libssl-dev
#pcre安装
sudo apt-get install libpcre3 libpcre3-dev
#zlib安装
sudo apt-get install zlib1g-dev
1.解压缩 nginx-1.8.1.tat.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
sudo make
sudo make install
# 可能会出现以下错误
cc1: all warnings being treated as errors
objs/Makefile:440: recipe for target 'objs/src/core/ngx_murmurhash.o' failed
make[1]: *** [objs/src/core/ngx_murmurhash.o] Error 1
make[1]: Leaving directory '/home/mac/Desktop/FastDFS/nginx-1.8.1'
Makefile:12: recipe for target 'install' failed
# 解决办法
进入到你ngxin解压目录下的objs目录中找到Makefile
我自己的在: cd ~/Desktop/FastDFS/nginx-1.8.1/objs/
sudo vim Makefile
修改第三行CFLAGS的参数
将 --Werror参数删除掉即可
5.sudo cp ~/Desktop/FastDFS/fastdfs-nginx-module-master/mod_fastdfs.conf /etc/fdfs/mod_fastdfs.conf
6.sudo vim /etc/fdfs/mod_fastdfs.conf
7.修改 内容为
connect_timeout=10
tracker_server=自己ubuntu虚拟机的ip地址:22122
url_have_group_name=true
8.sudo cp 解压缩的fastdfs-master目录下conf目录下的http.conf /etc/fdfs/http.conf
9.sudo cp 解压缩的fastdfs-master目录下conf目录下的mime.types /etc/fdfs/mime.types
10.sudo vim /usr/local/nginx/conf/nginx.conf
添加内容为:
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;
}
}
#启动 nginx
cd /usr/local/nginx/sbin
sudo ./nginx
# 浏览器上访问
127.0.0.1:8888 #可以看到nginx启动成功的页面
# 再访问我们之前上传的图片返回的一串信息,当看到图片成功显示 后说明就没有问题
http://127.0.0.1:8888/group1/M00/00/00/rBCwA1_SfPGAEj9CAABA5jaIBAY052.jpg
python客户端上传测试
# 在安装个python与fdfs交互的包,直接将包放到django目录下
pip install fdfs_client-py-master.zip
# 使用
>>> 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'}