需要的文件:
- libfastcommon:wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
- fastdfs:wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
- nginx:wget http://nginx.org/download/nginx-1.8.0.tar.gz
- fastdfs-nginx-module:wget http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz
搭建图片服务器需要下面的几个文件
- fastdfs-5.05.tar.gz
- fastdfs-nginx-module_v1.16.tar.gz
- libfastcommon-1.0.7.tar.gz
- nginx
连接Linux服务器的软件我用的是SecureCRT 8.0
上传文件到服务器
如果使用的是SecureCRT 8.0,按ALT+P
打开上传文件的界面,将要上传的文件直接拖入界面就可以完成上传。
将fastdfs-5.05.tar.gz
、fastdfs-nginx-module_v1.16.tar.gz
、libfastcommon-1.0.7.tar.gz
分别拖入这个界面完成上传。
上传完成后,来到Linux虚拟机上在root
文件夹里面你可以看到上传的文件
安装FastDFS
在安装之前,需要安装几个依赖
FastDFS是用C语言开发的所以要安装gcc-c++
还有一个FastDFS的依赖库libevent
yum -y install gcc-c++
yum -y install libevent
我这里为了方便管理这几个文件,我在/usr/local
文件夹下面创建了一个文件名为tools
的文件夹,将root
目录下面的上传的文件移动到这个新创建的目录下
mv fastdfs-5.05.tar.gz fastdfs-nginx-module_v1.16.tar.gz libfastcommon-1.0.7.tar.gz /usr/local/tools
注:这里面的文件夹是我根据我电脑的环境来的,具体将文件移动到哪个位置自已决定
首先来处理libfastcommon-1.0.7.tar.gz
通过下面命令将这个文件夹解压
tar -zxvf libfastcommon-1.0.7.tar.gz
解压完成后,目录里面会多出来一个libfastcommon-1.0.7文件夹,通过cd命令进入。
这个目录的结构是这个样子的
这里有一个make.sh
的文件,通过执行这个文件来编辑
./make.sh
在执行make
的过程中我出现了一个错误 (这个错误不一定会遇到,我朋友安装就没有遇到这个错误)
意思是perl
命令没有找到,百度了一下大概是因为没有安装的原因
安装prel
yum -y install perl perl-devel
安装perl
完成后,重新执行./make.sh
就可以完成编辑了。
如果编辑期间没有出现错误就可以开始安装了,通过下面的命令开始安装
./make.sh install
出现下图这样子就是安装成功了
安装完成后会在usr/lib64
文件夹里面有一个libfastcommon.so
文件
将这个文件copy到usr/lib
目录下
cp libfastcommon.so /usr/lib
安装FastDFS
进入/usr/local/tools
(这个是我自已创建的文件夹,我是将上传的那几个文件放到了这个文件夹里面了),对fastdfs-5.05.tar.gz
文件进行解压,通过下面的命令
tar -zxvf fastdfs-5.05.tar.gz
进入解压后的文件夹,同样会有一个make.sh
的文件,执行这个文件进行编辑
./make.sh
编辑成功后,执行安装命令
./make.sh install
安装成功后的文件会出现在usr/bin
目录下
还有一部分的配置文件放在了etc/fdfs
文件夹里面
在/usr/local/tools/fastdfs-5.05/conf
(这个目录是我们解压文件的那个目录)里面我们需要将一部分配置文件cpoy到这个目录里面。
cp * /etc/fdfs/
重新进入到etc/fdfs
目录,通过ll
命令查看下,可以看到刚刚cpoy的那些文件
配置tracker文件
先根据下面的图片来创建出这几个文件夹,当然路径是根据你自已的情况来选 择的
在etc/fdfs
目录下,编辑tracker.conf
文件,来修改配置
vi tracker.conf
找到一个名字是base_path
的配置项
# the base path to store data and log files #日志的保存路径,这个修改成刚才创建的那个路径
base_path=/fastdfs/tracker
启动treacker服务,进入usr/bin
目录下,执行
ll fdfs*
下面显示的都是和fdfs有关的文件
通过执行下面命令来启动tracker服务,后面的conf文件是tracker的配置文件
fdfs_trackerd /etc/fdfs/tracker.conf
如果你的配置发生了变化,执行下面的命令重启就好了
fdfs_trackerd /etc/fdfs/tracker.conf restart
安装storage
进入etc/fdfs
目录来修改storage.conf
配置文件,下面我写出需要修改的配置项
# the base path to store data and log files
base_path=/fastdfs/storage
#在访问一张图片的时候需要加上这个group_name的前缀
group_name=xiaobai
#这个是上传的图片存放的位置
store_path0=/fastdfs/storage
#storage需要定时的向tracker回报,这个是tracker的地址(这个Ip建议将虚拟机的Ip固定,现在tracker的服务在本机上,这里我就写的本机的Ip)
tracker_server=192.168.133.24:22122
启动storage
进入usr/bin
目录下执行
fdfs_storaged /etc/fdfs/storage.conf
如果要重启此服务的话在后面加上resatrt就好
fdfs_storaged /etc/fdfs/storage.conf restart
查看storage
和tracker
有没有启动成功
执行
ps aux | grep tracker
ps aux | grep storage
通过分别执行上面的两行命令可以看出,这两个服务都已经开启
测试上传
进入etc/fdfs
目录修改client.conf
文件
vi client.conf
这里我写出需要修改的配置项
base_path=/fastdfs/client
tracker_server=192.168.133.24:22122
这两个配置修改成和自已对应的信息即可
进入usr/bin
目录里面有一个fdfs_test
的文件,这个文件就是测试上传文件的工具,既然要上传图片,这里我就准备了一个图片,你可以在SecureCRT 8.0中的SFTP工具来上传图片到虚拟机上,(使用过程和上面上传fastDFS的过程一样,上传的直接将文件拖入界面就传到了虚拟机的root目录下,我这里上传的图片的名字是t.png),执行下面的命令上传图片,/etc/fdfs/client.conf这个是client的配置文件
fdfs_test /etc/fdfs/client.conf upload /root/t.png
http://192.168.133.24/xiaobai/M00/00/00/wKiFGF4KEjmAe3JKAAHS7nP5uag941_big.png
这个是我上传文件后返回的地址,可能看到Ip后面的xiaobai
就是我在配置文件中修改的group_name
的值
,这样直接在宿主机是不可以直接访问的,还要配置nginx
配置NGINX
在我们个传fastDFS文件的时候有一个文件是fastdfs-nginx-module_v1.16.tar.gz
,这个文件是fastDFS
和nginx
连接的模块
解压fastdfs-nginx-module_v1.16.tar.gz
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
解压完成后,进入解压的目录下面的src
目录,修改改目录下面的config
文件
vim config
将这几个标红的local
删除掉
在安装nginx之前先安装一些依赖库
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum install -y openssl openssl-devel
nginx自已可以去官网下载
解压nginx
tar -zxvf nginx-1.17.7.tar.gz
./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/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/usr/local/tools/fastdfs-nginx-module/src
–add-module这个配置项需要修改成你自的模块路径,具体的路径可以参考我写的路径进行修改
进行nginx的目录,将上面的代码复制直接在命令行粘贴,按回车如下:
完成后,在nginx的目录输入make
进行编辑
编辑完成后,通过make install
进行安装
安装 完成后在usr/local
目录下有一个nginx
目录,这个就是安装完成后的目录
在/usr/local/tools/fastdfs-nginx-module/src
目录下面有一个mod_fastdfs.conf
文件,将这个文件copy到etc/fdfs
目录下面
cp mod_fastdfs.conf /etc/fdfs
进入etc/fdfs
目录,修改mod_fastdfs.conf
文件
vi mod_fastdfs.conf
我写出要修改的地方,修改成如下,保存文件(:wq命令是保存文件)
# the base path to store log files
base_path=/fastdfs/tmp
#这里的IP修改成虚拟机的Ip
tracker_server=192.168.133.24:22122
#这里的group_name和上面的那个group_name是一样的,修改成相同的就好
group_name=xiaobai
#下面的这个修改成true
url_have_group_name = true
store_path0=/fastdfs/storage
在根目录的fastdfs下创建tmp文件夹
mkdir /fastdfs/tmp -p
进入ngin的安装目录
cd /usr/local/nginx/
修改该目录下面的conf
目录下的nginx.conf
文件,添加下面方框
创建一个文件夹mkdir /var/temp/nginx -p
切换到nginx
目录下的src
目录执行./nginx
启动nginx
在宿主机上访问可以成功的访问到图片,如果访问不到请检查防火墙或者是在搭建环境中的配置是否有错误