### start from here

## 前置准备依赖c++ :
yum -y install libevent libevent-devel perl make gcc zlib zlib-devel pcre pcre-devel gcc-c++ openssl-devel

1.安装libfastcommon
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.43.tar.gz
mv V1.0.43.tar.gz libfastcommon-1.0.43.tar.gz && tar -xvf libfastcommon-1.0.43.tar.gz
cd libfastcommon-1.0.43 && ./make.sh && ./make.sh install

2.安装fastdfs # 注意conf 的mine.types和http.conf 一定要复制过去,其次下载本版本建议6.x不然安装会有兼容问题
wget https://github.com/happyfish100/fastdfs/archive/V6.06.tar.gz
mv V6.06.tar.gz fdfs6.06.tar.gz && tar -xvf fdfs6.06.tar.gz
cd cd fastdfs-6.06 && ./make.sh && ./make.sh install
cp -r conf/* /etc/fdfs && rm -f *.sample

. 在$base_path 下新建data 和logs目录(存储trackerd.log 和storaged.log)
cd $base_path && mkdir -p data && mkdir logs

3.修改配置
1.修改 vi tracker.conf
port=22122 # tracker服务器端口(默认22122,一般不修改)
base_path=/etc/fdfs # 存储日志和数据的根目录

2.修改 vi storage.conf
port=23000 # storage服务端口(默认23000,一般不修改)
base_path=/etc/fdfs # 数据和日志文件存储根目录
store_path0=/etc/fdfs # 第一个存储目录
tracker_server=192.168.110.151:22122 # tracker也就是fdfs服务器IP和端口
http.server_port=8888 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)

3.修改 vi client.conf
base_path=/etc/fdfs
tracker_server=192.168.110.151:22122 #tracker服务器IP和端口



4.启动服务:
sh fastfdfs_services.sh
或者使用:
/etc/init.d/fdfs_trackerd start/stop/restart
/etc/init.d/fdfs_storaged start/stop/restart


6.测试fastfdfs上传服务:
/usr/bin/fdfs_test /etc/fdfs/client.conf upload $filename
看到如下类似表示服务ok

example file url: http://192.168.110.151/group1/M00/00/00/wKhul1-qhhKAO3ywAAABcxvxSxw5288_big.jpg

7.nginx整合,由于现在还没有和nginx整合无法使用http下载
7.1 安装fastdfs-nginx-module安装fastdfs-nginx-module:
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.22.tar.gz
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs

配置nginx moudle:
vim /etc/fdfs/mod_fastdfs.conf
tracker_server=192.168.0.104:22122 #tracker服务器IP和端口
url_have_group_name=true
store_path0=/home/dfs

安装nginx:
wget http://nginx.org/download/nginx-1.15.4.tar.gz #下载nginx压缩包
tar -zxvf nginx-1.15.4.tar.gz
cd nginx-1.15.4/
./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/ # 添加fastdfs-nginx-module模块
make && make install


7.2#配置nginx.config
touch /usr/local/nginx/logs/nginx.pid && chmod a+w /usr/local/nginx/logs/nginx.pid
vim /usr/local/nginx/conf/nginx.conf
#添加如下配置
pid /usr/local/nginx/logs/nginx.pid;

server {
listen 8888; ## 该端口为storage.conf中的http.server_port相同
server_name 192.168.110.151;

location ~/group[0-9]/ {
ngx_fastdfs_module;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

}


8.关闭防火墙:
systemctl stop firewalld.service

9.nginx 启动停止
./nginx -c /usr/local/nginx/conf/nginx.conf # 根据配置启动
/usr/local/nginx/sbin/nginx #启动nginx
/usr/local/nginx/sbin/nginx -s reload #重启nginx
/usr/local/nginx/sbin/nginx -s stop #停止nginx

10.测试访问:
nginx访问
访问:http://192.168.0.104:8888/group1/M00/00/00/wKgAaFyMoNKAUNcVAAWjVxW4v70993.jpg

  

注意:client.conf是放在django项目里面的linux不用放:如果window存放base_path要写windows路径切记