一、准备环境
下载,推荐到这里,这是作者的GitHub:https://github.com/happyfish100
首先进入到根目录
cd /
创建一个文件夹development,主要用于存放我们FastDFS的安装文件
将相关文件上传至development文件夹中,可以通过FX等方式
二、安装libfastcommon内库
进入到development文件夹后加压libfastcommon-1.0.39.tar.gz打包压缩文件
#进入development准备加压 cd development/ #解压 tar -zxvf libfastcommon-1.0.39.tar.gz #进入 cd libfastcommon-1.0.39 #查看文件中的内容 ll
准备编译并且安装
./make.sh && ./make.sh install
查看libfastcommon有没有正确安装到虚拟机上
cd /usr/lib && ll libfast*
显示如下信息,表示成功安装
三、安装fastdfs
3.1、安装基本环境
重新进入到development目录下,加压fastdfs-5.11.tar.gz
#进入development目录 cd /development/ #解压 tar -zxvf fastdfs-5.11.tar.gz #进入fastdfs-5.11目录,然后ll查看文件 cd fastdfs-5.11 ll
创建一个目录,用来存放FastDFS的配置
mkdir /etc/fdfs
拷贝两个文件到创建的fdfs目录中,目的是为了避免后面会出现的错误
cp /development/fastdfs-5.11/conf/mime.types /etc/fdfs/ cp /development/fastdfs-5.11/conf/http.conf /etc/fdfs/ #查看/etc/fdfs目录下的内容 ll /etc/fdfs/
开始编译安装fastdfs
#进入到 fastdfs-5.11 目录,执行相同的编译安装命令 cd /development/fastdfs-5.11/ ./make.sh && ./make.sh install
安装成功后查看安装的情况
cd /usr/bin/ && ll fdfs*
3.2、安装Tracker服务(监控服务)
编辑tracker服务的配置文件tracker.conf
vim /development/fastdfs-5.11/conf/tracker.conf
需要修改的内容如下:
# the base path to store data and log files base_path=/home/yuqing/fastdfs 修改为 base_path=/development/fastdfs/tracker #注意,这里是本地,只需要修改这一个地方,更多的修改根据环境的不同来修改
因为我们并没有上面修改的文件夹,下面就来创建这个文件夹
mkdir -p /development/fastdfs/tracker #存储目录 mkdir -p /development/fastdfs/storage mkdir -p /development/fastdfs/client #Ngix使用的目录 mkdir -p /var/temp/nginx/client
mkdir --help 长选项必须使用的参数对于短选项时也是必需使用的。 -m, --mode=模式 设置权限模式(类似chmod),而不是rwxrwxrwx 减umask -p, --parents 需要时创建目标目录的上层目录,但即使这些目录已存在也不当作错误处理 -v, --verbose 每次创建新目录都显示信息 -Z, --context=CTX 将每个创建的目录的SELinux 安全环境设置为CTX When COREUTILS_CHILD_DEFAULT_ACLS environment variable is set, -p/--parents option respects default umask and ACLs, as it does in Red Hat Enterprise Linux 7 by default --help 显示此帮助信息并退出 --version 显示版本信息并退出
验证stracker服务是否能正常启动和关闭
#启动=命令+配置+命令 fdfs_trackerd /development/fastdfs-5.11/conf/tracker.conf #查看tracker目录下是否有文件了 ll /development/fastdfs/tracker/
看到data和logs就证明tracker服务已经启动,并且配置的basepath也是没有问题的
#关闭/停止 = 命令 + 配置 + 命令 fdfs_trackerd /development/fastdfs-5.11/conf/tracker.conf stop
#接start启动 fdfs_trackerd /development/fastdfs-5.11/conf/tracker.conf start #查看进程的方式查看fdfs ps -ef | grep fdfs
3.3、安装storage服务
编辑storage的配置文件
vim /development/fastdfs-5.11/conf/storage.conf
修改内容如下:
# and storage_ids.conf must be configed correctly. group_name=group1 修改这个的分组名称,这里可以默认为group1,
# bind an address of this host # empty for bind all addresses of this host bind_addr= 修改为当前IP地址 bind_addr=192.168.25.129
# the base path to store data and log files base_path=/home/yuqing/fastdfs 修改为刚新建的storage目录 base_path=/development/fastdfs/storage
# store_path#, based 0, if store_path0 not exists, it's value is base_path # the paths must be exist store_path0=/home/yuqing/fastdfs 修改为storage目录 store_path0=/development/fastdfs/storage
# tracker_server can ocur more than once, and tracker_server format is # "host:port", host can be hostname or ip address tracker_server=192.168.209.121:22122 修改为自己的IP地址 tracker_server=192.168.25.129:22122
修改完成保存并退出
启动storage服务,这里需要注意,需要先启动tracker服务
#因为刚才我们已经启动过了,使用这里不需要启动tracker了 #如果没有启动,记得启动 #启动/关闭也差不多 = 命令 + 配置 + 命令 fdfs_storaged /development/fastdfs-5.11/conf/storage.conf fdfs_storaged /development/fastdfs-5.11/conf/storage.conf stop fdfs_storaged /development/fastdfs-5.11/conf/storage.conf start ps -ef|grep fdfs
四、测试服务
4.1、上传一张图片到Linux服务器上
4.2、通过FastDFS中的测试(刚才的test)进行测试
#上传测试 = 命令 + 配置 + 命令 + 图片 fdfs_test /development/fastdfs-5.11/conf/client.conf upload /development/test.png
修改配置文件呗:
vim /development/fastdfs-5.11/conf/client.conf
修改信息如下
# the base path to store log files base_path=/home/yuqing/fastdfs 修改为刚才的client目录 base_path=/development/fastdfs/client
# tracker_server can ocur more than once, and tracker_server format is # "host:port", host can be hostname or ip address tracker_server=192.168.0.197:22122 修改为本地IP地址 tracker_server=192.168.25.129:22122
保存并退出
再次执行上传测试命令
fdfs_test /development/fastdfs-5.11/conf/client.conf upload /development/test.png
如果显示上图信息,表示上传已经成功了,保存地址,为了后面配置好Nginx之后可以查看
http://192.168.25.129/group1/M00/00/00/wKgZgV2vhkqAF4HEAAOyoURsXcU168_big.png
4.3、查看一下图片被保存的地方
#进入数据保存的位置(请记好这个文件夹的地址) cd /development/fastdfs/storage/data/ #通过ls来进行查看,因为分片后的文件比较多 ls #上面地址上有M00/00/00,下面的00是第一个目录 cd 00 #这是进入到第二个目录 cd 00 #通过ll命令可以查看到图片文件了 ll
五、FastDFS和Nginx整合
回到development目录,解压fastdfs-nginx-module-1.20.tar.gz
cd /development/ tar -zxvf fastdfs-nginx-module-1.20.tar.gz cd fastdfs-nginx-module-1.20 ll cd fastdfs-nginx-module-1.20/src/ ll
修改config文件
vim config
ngx_module_incs="/usr/local/include" 修改为 ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon"
CORE_INCS="$CORE_INCS /usr/local/include" 修改为 CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon"
保存并退出
到目前为止,已经安装好FastDFS服务器,但是还没有和Nginx进行配合实现图片服务器的效果,因为Nginx我们还未安装,下面就安装Nginx
#再次回到development目录,解压Nginx cd /development/ tar -zxvf nginx-1.8.0.tar.gz cd nginx-1.8.0 ll
配置命令:
./configure \ --prefix=/usr/local/nginx \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/usr/local/nginx/errors/error.log \ --http-log-path=/usr/local/nginx/logs/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=/development/fastdfs-nginx-module-1.20/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.
yum -y install pcre-devel
yum install -y zlib-devel
再次执行上面的配置命令
接下来运行make命令安装
#当前所在目录/development/nginx-1.8.0 make && make install
开始配置Nginx配合FastDFS,修改配置文件mod_fastdfs.conf
vim /development/fastdfs-nginx-module-1.20/src/mod_fastdfs.conf
修改内容如下:
# the base path to store log files base_path=/tmp 修改为 base_path=/development/fastdfs
# "host:port", host can be hostname or ip address # valid only when load_fdfs_parameters_from_tracker is true tracker_server=tracker:22122 修改为自己的IP地址 tracker_server=192.168.25.129:22122
# if the url / uri including the group name # set to false when uri like /M00/00/00/xxx # set to true when uri like ${group_name}/M00/00/00/xxx, such as group1/M00/xxx # default value is false url_have_group_name = false 修改为 url_have_group_name = true
# store_path#, based 0, if store_path0 not exists, it's value is base_path # the paths must be exist # must same as storage.conf store_path0=/home/yuqing/fastdfs #store_path1=/home/yuqing/fastdfs1 修改为 store_path0=/development/fastdfs/storage
保存并退出
将修改好的文件复制一份到/etc/fdfs 目录下
cp /development/fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs/
启动前,配置Nginx相关配置
创建存放Nginx多虚拟的配置文件的目录
mkdir /usr/local/nginx/conf/conf.d
配置Nginx的主配置文件nginx.conf
vim /usr/local/nginx/conf/nginx.conf
#添加如下信息 include conf.d/*.conf; # another virtual host using mix of IP-, name-, and port-based configuration
保存并退出
在创建一个fastdfs-server.conf文件
vim /usr/local/nginx/conf/conf.d/fastdfs-server.conf
填上fastdfs相关的配置信息
server{ listen 18888; server_name 192.168.25.129; location /group1/M00{ ngx_fastdfs_module; } }
验证Nginx,通过:
/usr/local/nginx/sbin/nginx -t
不带参数启动Nginx
/usr/local/nginx/sbin/nginx
本地浏览器测试,带上端口号(配置的18888)
http://192.168.25.129:9870/group1/M00/00/00/wKgZgV2vhkqAF4HEAAOyoURsXcU168_big.png