# FastDFS实践
## 所需素材:

## 一、上传流程

## 二、安装tracker服务器
### (1)由于FastDFS是用c语言编写的,首先安装gcc依赖环境
- ```
yum install -y gcc-c++
```
### (2)安装libevent
- ```
yum -y install libevent
```
### (3)安装libfastcommon
- 上传压缩包文件libfastcommonV1.0.7.tar.gz 到 /usr/local目录下,并解压。
- ```
tar -zxvf libfastcommonV1.0.7.tar.gz
```
- 进入到解压后的文件夹中
- 
- 进行编译 ./make.sh
- 如果出现编译perl 不识别 运行下面这段命令 – os7
- ```
yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget
```

- 安装 ./make.sh install
- ==注意:libfastcommon安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程序引用usr/lib目录,所以需要将/usr/lib64下的库文件拷贝至/usr/lib下==
- ```
cp /usr/lib64/libfastcommon.so /usr/lib/
```
### (4)tracker编译安装
- 上传资料FastDFS_v5.05.tar.gz到 /usr/local 目录下
- 解压编译安装,依次执行
- ```
tar -zxvf FastDFS_v5.05.tar.gz
cd FastDFS
./make.sh
./make.sh install
```
- 安装成功之后,将安装目录下的conf下的文件拷贝到/etc/fdfs/下。
- ```
cd conf
cp * /etc/fdfs/
```
- 修改配置文件
- ```
vim /etc/fdfs/tracker.conf
```
- 
- 创建fastdfs文件夹
- ```
mkdir /opt/fastdfs
```
### (5)配置启动项
- ```
mkdir /usr/local/fdfs
```
- 拷贝安装目录/usr/local/FastDFS下stop.sh 和restart.sh 到/usr/local/fdfs/
- ```
cp restart.sh /usr/local/fdfs/
cp stop.sh /usr/local/fdfs/
```
- 修改启动脚本 <span style="color:red">注意别改错了!</span>
- ```
vim /etc/init.d/fdfs_trackerd
```
- 
- 
- 改成上面这样
- 注册服务并启动
- 
## 三、storage安装
### (1)修改配置文件
```
vim /etc/fdfs/storage.conf
```
- 
- 
### (2)创建fdfs_storage文件夹
- ```
mkdir /opt/fastdfs/fdfs_storage
```
### (3)设置启动服务
- ```
vim /etc/init.d/fdfs_storaged
```
- 
- 
- ```
cd /etc/init.d/
```
- 
### (4)上传图片测试
- FastDFS安装成功可通过/usr/bin/fdfs_test测试上传、下载等操作。
- 修改**/etc/fdfs/client.conf**
- ```
vim /etc/fdfs/client.conf
```
- 
- 比如将/root下的图片上传到FastDFS中:
- ```
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /root/001.jpg
```
- 
- 对应的上传路径:
/opt/fastdfs/fdfs_storage/data /00/00/wKhxhF8SmjyAM7aVAAAl_GXv6Z4860.jpg
- 
### (5)备份快照!
## 四、安装nginx
### (1)安装前配置fastdfs-nginx-module
- 上传fastdfs-nginx-module_v1.16.tar.gz上传到 /usr/local,并解压
- ```
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
```
- 编辑配置文件:修改config文件将/usr/local/路径改为/usr/ ==3处==
- ```
vim fastdfs-nginx-module/src/config
```
- 
- 将FastDFS-nginx-module/src下的mod_fastdfs.conf拷贝至/etc/fdfs/下
- ```
cp mod_fastdfs.conf /etc/fdfs/
```
- 修改mod_fastdfs.conf的内容:
- ```
vim /etc/fdfs/mod_fastdfs.conf
```
- ==修改4处==
- 
- 
- 将libfdfsclient.so拷贝至/usr/lib下
- ```
cp /usr/lib64/libfdfsclient.so /usr/lib/
```
- 查看
- 
### (2)安装nginx
- 安装运行环境(由于之前已经安装过gcc-c++此处无需再安装)
- ```
yum install -y pcre pcre-devel
```
- ```
yum install -y zlib zlib-devel
```
- ```
yum install -y openssl openssl-devel
```
- 解压:nginx-1.12.2.tar.gz
- ```
cd nginx-1.12.2
```
- ```
mkdir -p /var/temp/nginx/client
```
- ```
cd /usr/local/nginx-1.12.2
```
执行:
- ```
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/usr/local/fastdfs-nginx-module/src
```
- 编译、安装
- ```
make
make install
```
### (3)编辑nginx.conf 代理
- **编辑 nginx** **的安装路径的nginx.conf**
- ```
vim /usr/local/nginx/conf/nginx.conf
```
- ```
server {
listen 80;
server_name 192.168.113.132;//自己的ip地址
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
//这是增加的
location /group1/M00/ {
ngx_fastdfs_module;
}
```
- 重启nginx
- ```
/usr/local/nginx/sbin/nginx -s reload
```
## FastDFS安装完成!

FastDFS实践