在之前的博客中,我有说到,我最喜欢用Yum在线安装的方式安装软件,简单省事儿。现在看来,也不尽然,关键是,无法快速找到我要的文件,整个whereis 也很累。所以,现在觉得,还是乖乖的整个压缩包,自行安装比较和我心意。

首先,要用到的压缩包列表:

安装步骤概况:

1,安装运行环境包libevent工具包

2,安装libfastcommon工具包

3,安装Tracker服务

4,安装storage服务

5,安装Nginx提供HTTP服务

5.1,需要重新编译Nginx,所以需要处理fastdfs-nginx-module插件(简单)

详细安装步骤:

友情提示:最好是把需要的压缩包聚集到一个目录下,然后解压的时候,在一个自己知道的地方,没什么别的意思或者深意,只是为了自己方便找一些文件,然后操作文件的时候快一点。(你要是写半天的cp或者rm,结果发现写不出目录,就呵 呵影响心情了)

1,安装运行环境包libevent工具包

这一步是极其简单粗暴的,一行命令:yum -y install libevent

2,安装libfastcommon工具包

1, 解压缩:  tar -zxvf  压缩包所在位置

2, ./make.sh

3, ./make.sh install

4, 把/usr/lib64/libfastcommon.so文件向/usr/lib/下复制一份

备注:编译安装的时候,注意一下当前所在文件的位置。  不跟我这个猴子派来的DB学习,当前,我可是在根目录下执行./make.sh,还傻傻闹不懂,为毛不成功

3,安装Tracker服务

1、解压缩

2、./make.sh

3、./make.sh install

安装后在/usr/bin/目录下有以fdfs开头的文件都是编译出来的。

配置文件都放到/etc/fdfs文件夹

4、把/root/FastDFS/conf目录下的所有的配置文件都复制到/etc/fdfs下。

5、配置tracker服务。修改/root/FastDFS/conf/tracker.conf文件。

备注:自己看好自己相应文件所在的位置,Vim tracker.conf
需要修改的内容(也说不上修改,只是和配置文件对应):base_path=/home /yuqing /fastdfs
两个选择:一,将此路径修改为自己指定的路径;二、按照此路径,在相应的位置,建立文件目录。(所以我说,也算不上是修改)

6、启动tracker。/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

重启使用命令:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

4,安装storage服务

1-4,同tracker服务安装过程(如果在同一台机器上安装,则直接进行第5步)
5,配置storage服务。修改/root/FastDFS/conf/storage.conf文件

要修改的地方,有3处:1,base_path=/home/yuqing/fastdfs    2,store_path0=/home/yuqing/fastdfs(这是图片保存路径,必须存在)   3,tracker_server=IP : 22122(指定tracker服务器的ip及端口号,默认的端口为22122)

6,启动storage服务。

/usr/bin/fdfs_storaged/etc/fdfs/storage.confrestart


友情提示:在启动storage服务的时候,时间相对长一点,但不会太长,如果过了好几分钟还没有执行通过,孩子,你该看日志文件了。比如说,我在安装的时候,storage服务一直没有起来,也没有建立相应的数据data文件夹,结果是因为我tracker服务器配置出错。还有防火墙端口的配置出错。  日志文件写得很明白。

7,测试服务:配置文件/etc/fdfs/client.conf,要修改的地方有两处:1,base_path=/home/fastdfs/client(客户端日志保存路径)  2,tracker_server=IP : 22122(tracker服务器地址)

5,安装Nginx提供HTTP服务

备注:Nginx安装过程省略,搞不定的,留言!

1,解压fastdfs-nginx-module插件
2,修改/root/fastdfs-nginx-module/src/config文件,把其中的local去掉。


3,重新配置Nginx

./configure \

--prefix=/var /nginx \

--with-http_gzip_static_module \

--http-client-body-temp-path=/var/nginx/client\

--http-proxy-temp-path=/var/nginx/proxy\

--http-fastcgi-temp-path=/var/nginx/fastcgi\

--http-uwsgi-temp-path=/var/nginx/uwsgi\

--http-scgi-temp-path=/var/nginx/scgi\

--add-module=/usr/local/fastdfs-nginx-module/src

附录:最开始的config配置

./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



注意:上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录

4、make

5、makeinstall

6、把/root/fastdfs-nginx-module/src/mod_fastdfs.conf文件复制到/etc/fdfs目录下。编辑四个地方:1,base_path=/tmp(日志存放路径)  2,tracker_server=IP:22122(tracker服务器地址)  3,url_have_group_name=true    4,store_path0=/home/fastdfs/storage
(图片保存路径,注意和storage服务配置相对应)

7、配置nginx

在nginx的配置文件中添加一个Server:

server {
listen 80;
server_name 192.168.101.3; location /group1/M00/{
#root /home/FastDFS/fdfs_storage/data;
ngx_fastdfs_module;
}
}

8、将libfdfsclient.so拷贝至/usr/lib下

cp/usr/lib64/libfdfsclient.so /usr/lib/

9、启动nginx

附:使用的基本代码

1,FastDFSClient

package taotao.utils;

import org.csource.common.NameValuePair;
import org.csource.fastdfs.*;
/**
* Created by Angelina on 2017/6/7.
*/
public class FastDFSClient { private TrackerClient trackerClient = null;
private TrackerServer trackerServer = null;
private StorageServer storageServer = null;
private StorageClient1 storageClient = null; public FastDFSClient(String conf) throws Exception { if (conf.contains("classpath:")) {
String url = this.getClass().getResource("/").getPath();
url = url.substring(1);
conf = conf.replace("classpath:", url);
}
ClientGlobal.init(conf);
trackerClient = new TrackerClient();
trackerServer = trackerClient.getConnection();
storageServer = null;
storageClient = new StorageClient1(trackerServer, storageServer);
} public String uploadFile(String fileName, String extName, NameValuePair[] metas) throws Exception {
return storageClient.upload_file1(fileName, extName, metas);
}
public String uploadFile(String fileName, String extName) throws Exception {
return storageClient.upload_file1(fileName, extName, null);
} public String uploadFile(String fileName) throws Exception {
return storageClient.upload_file1(fileName, null, null);
} public String uploadFile(byte[] fileContent, String extName, NameValuePair[] metas) throws Exception {
return storageClient.upload_file1(fileContent, extName, metas);
} public String uploadFile(byte[] fileContent, String extName) throws Exception {
return storageClient.upload_file1(fileContent, extName, null);
} public String uploadFile(byte[] fileContent) throws Exception {
return storageClient.upload_file1(fileContent, null, null);
} }

2,应用实例

    @Value("${IMAGE_SERVER_BASE_URL}")
private String IMAGE_SERVER_BASE_URL; @Override
public PictureResult uploadPic(MultipartFile picFile){
PictureResult result=new PictureResult();
//check the picture
if (picFile.isEmpty()){
result.setError(1);
result.setMessage("the file not found");
return result;
}
//upload the picture to the server
try{
//get the file's extension
String originalFilename=picFile.getOriginalFilename();
String extName=originalFilename.substring(originalFilename.lastIndexOf(".")+1);
FastDFSClient client=new FastDFSClient("classpath:properties/client.conf");
String url=client.uploadFile(picFile.getBytes(),extName);
//stitching the URL
url=IMAGE_SERVER_BASE_URL+url;
result.setError(0);
result.setUrl(url);
}catch(Exception e){
e.printStackTrace();
}
return result;
}

FTP的搭建过程,以及遇到的坑的更多相关文章

  1. FTP 的搭建过程和遇到的问题

    http://linux.it.net.cn/e/server/ftp/2015/0227/13554.htmlhttps://mp.weixin.qq.com/s?__biz=MzA3OTgyMDc ...

  2. 【Mysql】Mysql主从库搭建过程(爬完坑后整理所得)

    Mysql主从数据库搭建流程 新手开始学习mysql主从库,遇到一些问题,总结后写出以下流程 下面以5.7.23版本为例介绍 第一步:去官网下载5.7.23版本的免安装压缩包形式的mysql文件,贴上 ...

  3. 记一次ftp服务器搭建走过的坑

    记一次ftp服务器搭建走过的坑 1.安装 ①下载 wget https://security.appspot.com/downloads/vsftpd-3.0.3.tar.gz #要FQ ②解压 ta ...

  4. Ftp站点搭建的详细过程(包括指定用户登录)

    最近接到要部署一个Ftp站点的一个任务,然后过程中有点小插曲踩了一些坑(指定用户登录,用户名和密码都是对的,输入了超级多遍,还是不行,登录不上,后面详细说明解决方案),特此记录一下.避免大家踩坑. 参 ...

  5. Centos7搭建FTP服务详细过程

    Centos7搭建FTP服务详细过程https://blog.csdn.net/sinat_30802291/article/details/81706152

  6. FTP服务器搭建及操作(一)

    FTP服务器搭建及操作(一) FTP搭建 PHP FTP操作 搭建方法参照(windows):http://www.cnblogs.com/lidan/archive/2012/06/04/25351 ...

  7. FTP-Linux中ftp服务器搭建

    一.FTP工作原理 (1)FTP使用端口 [root@localhost ~]# cat /etc/services | grep ftp ftp-data 20/tcp #数据链路:端口20 ftp ...

  8. ftp&nginx搭建图片服务器

    下面使用ftp+nginx搭建一个简单的服务器 ftp用于文件的传输 nginx提供http服务 nginx服务器的安装和配置可以参照之前的教程:nginx安装及其配置详细教程 下面介绍ftp服务的安 ...

  9. VS2017 + EF + MySQL 我使用过程中遇到的坑

    原文:VS2017 + EF + MySQL 我使用过程中遇到的坑 写在前面: 第一次使用MySQL连接VS的时候本着最新版的应该就是最好的,在MySQL官网下载了最新版的MySQL没有并且安装完成之 ...

随机推荐

  1. MySql自动默认时间及更新时间

    注意:5.7 才能用类型为datetime的字段实现 `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `modifie ...

  2. VC++堆栈大小设置

    VC++堆栈默认大小是1M,如果你分配大于1M的堆,一般会出异常,这里你要把堆调大些,下面是VC++6.0与VC++2010的设置方法 VC++6.0: 工程==>设置==>“连接”界面, ...

  3. jmeter的安装和基本使用

    本篇文章主要介绍一下JMeter的安装及基本使用方法. 1.安装 JMeter的官方网址为http://jmeter.apache.org/ 下载地址为http://jmeter.apache.org ...

  4. HTTP 错误 404.15 - Not Found请求筛选模块被配置为拒绝包含的查询字符串过长的请求

    web项目中,get方式传值是通过地址栏中的url参数进行传递的.除了浏览器对url长度的限制大小不一之外,出于安全考虑, IIS中对于URL中参数大小也是有限制的,默认为2048KB. 如果参数大于 ...

  5. Python-OpenCV中的cv2.inpaint()函数

    概念 修复是图像插值.数字修复算法在图像插值,照片恢复,缩放和超分辨率等方面具有广泛的应用. 大多数人会在家里放一些旧的退化照片,上面有一些黑点,一些笔画等.你有没有想过恢复它?我们不能简单地在绘画工 ...

  6. Jquery二维码在线生成(不能生成图片文件)

    附件地址:http://files.cnblogs.com/files/harxingxing/jQuery%E4%BA%8C%E7%BB%B4%E7%A0%81%E5%9C%A8%E7%BA%BF% ...

  7. Web服务器 --> 基于HTTP的网站开发

    经过几十年的发展,已经出现几个成熟的处理HTTP的知名的Web服务器.这些服务器可以解析(handle)HTTP,当Web服务器接收到一个HTTP请求时,会根据配置的内容返回一个静态HTML页面或者调 ...

  8. vue入坑教程(三)vue父子组件之间互相调用方法以及互相传递数据

    1.父组件调用子组件的方法 父组件: <template> <div> <button v-on:click="clickParent">点击& ...

  9. C# 替换去除HTML标记方法(正则表达式)

    [from] http://blog.csdn.net/sgear/article/details/6263848/// <summary> /// 将所有HTML标签替换成"& ...

  10. Dede技巧

    解决DEDE图集上传图片时跳出302错误   本地上传图集的时候突然提示网页出错,还爆出302错误. 解决办法是在include/userlogin.class.php文件中的第二行session_s ...