实测有效可用,成功在阿里云跑起来!!!!!
跟着我的步骤一步一步来。绝对成功!!!!
首先说明:
libfastcommon V1.0.7
FastDFS V5.05
nginx V1.8
1.下载安装 libfastcommon
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
解压 libfastcommon,命令:
tar -zxvf V1.0.7.tar.gz
编译,进入libfastcommon-1.0.7目录,命令:
cd libfastcommon-1.0.7
./make.sh
// 安装,命令:
./make.sh install
2.下载安装 FastDFS.
wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
解压 FastDFS ,命令:
tar -zxvf V5.05.tar.gz
编译,进入fastfds-5.05目录,命令:
cd fastdfs-5.05
./make.sh
安装,命令:
./make.sh install
上述安装成功后,在/etc/目录下会有一个fdfs的目录,进入它。会看到三个.sample后缀的文件,这是作者给我们的示例文件,
我们需要把其中的tracker.conf.sample文件改为tracker.conf配置文件并修改它。看命令:
cp tracker.conf.sample tracker.conf
vim tracker.conf
打开tracker.conf文件,只需要找到你只需要该这两个参数就可以了。
# the base path to store data and log files
base_path=/data/fastdfs
# HTTP port on this tracker server
http.server_port=80
/data/fastdfs目录是我自定义的一个fastdfs存储数据的主目录。port=22122这个端口参数不建议修改,除非你已经占用它了。
修改完成保存并退出 vim ,这时候我们可以使用
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
来启动 Tracker服务,但是这个命令不够优雅,怎么做呢?使用ln -s 建立软链接:
ln -s /usr/bin/fdfs_trackerd /usr/local/bin
ln -s /usr/bin/stop.sh /usr/local/bin
ln -s /usr/bin/restart.sh /usr/local/bin
这时候我们就可以使用service fdfs_trackerd start来优雅地启动 Tracker服务了,你也可以启动过服务看一下端口是否在监听:
// 启动服务:
service fdfs_trackerd start
// 查看监听:
netstat -unltp|grep fdfs
看到22122端口
正常被监听后,这时候Tracker服务就是安装成功啦!
进入/etc/fdfs
的目录操作,首先进入它。会看到三个.sample
后缀的文件,我们需要把其中的storage.conf.sample
文件改为storage.conf
配置文件并修改它。还看命令:
cp storage.conf.sample storage.conf
vim storage.conf
打开storage.conf
文件后,找到这两个参数进行修改,(如果你用的是云服务器的话这里ip是服务器外网IP(坑)):
# the base path to store data and log files
base_path=/data/fastdfs/storage
# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
store_path0=/data/fastdfs/storage
#store_path1=/home/yuqing/fastdfs2
# 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.198.129:22122
记得在/data/fastdfs
目录下要创建storage
文件夹,没有就创建一个,不然会报错的,日志以及文件都会在这个下面,启动时候会自动生成许多文件夹。stroage的port=23000
这个端口参数也不建议修改,默认就好,除非你已经占用它了。
修改完成保存并退出 vim ,这时候我们依然想优雅地启动 Storage服务,带目录的命令不够优雅,这里还是使用ln -s
建立软链接:
ln -s /usr/bin/fdfs_storaged /usr/local/bin
// 启动服务
service fdfs_storaged start
可以查看一下监听:
netstat -unltp|grep fdfs
为了之后的测试,需要再配置下client.conf
cd /etc/fdfs
cp client.conf.sample client.conf
vim client.conf
PS:这里提醒一下,如果是在云服务器上操作的话需要配置云服务的安全组策略,放开22122和23000端口,然后还有服务器的防火墙(iptables)要设置一下,如下
vi /etc/sysconfig/iptables
根据需求添加放行端口就行了,记得重启防火墙(这里卡住我了,一直以为是安全组策略,忘记了iptables也需要设置)
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
我们可以监视一下他俩是不是在通信
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
==================================================================================================== 简陋的分割线====================================================================================================
1.下载 Nginx 和 fastdfs-nginx-module
wget https://nginx.org/download/nginx-1.8.0.tar.gz
wget
https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz
先解压两个压缩包,
tar -zxvf nginx-1.8.0.tar.gz
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
进入fastdfs-nginx-module,修改config
# config文件修改
# 修改如下配置,我这里原来是
CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
# 改成
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
# 这个是很重要的,不然在nginx编译的时候会报错的,我看网上很多在安装nginx的fastdfs的插件报错,都是# 这个原因,而不是版本不匹配。
修改mod_fastdfs.conf
cd /software/fastdfs-nginx-module-master/src/
vim mod_fastdfs.conf
# FastDFS tracker_server can ocur more than once, and tracker_server format is
# "host:port", host can be hostname or ip address
# valid only when load_fdfs_parameters_from_tracker is true
tracker_server=192.168.198.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 = 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=/data/fastdfs/storage
#store_path1=/home/yuqing/fastdfs1
接着我们需要把fastdfs-5.05
下面的配置中还没有存在/etc/fdfs
中的拷贝进去
cd /software/fastdfs-5.05/conf
cp anti-steal.jpg http.conf mime.types /etc/fdfs/
接下来安装nginx
# 这里fastdfs-nginx-module-master/src/ 的路径要写全不能用../这样的相对目录来表示
./configure --add-module=/usr/local/fastdfs-nginx-module-master/src/
# 编译安装
make
make install
这里安装的话默认是安装到/usr/local/nginx的,进入到nginx的目录,配置conf
cd /usr/local/nginx/conf
vi nginx.conf
#-----nginx.conf
# server节点下新增location块
location /group1/M00 {
root /data/fastdfs/storage/data;
ngx_fastdfs_module;
}
配置文件服务软链接,以便于nginx能够转发到对应的文件上
ln -s /data/fastdfs/storage/data /data/fastdfs/storage/data/M00
启动nginx,会打印出fastdfs模块的pid
cd /usr/local/nginx/sbin/
./nginx
## 效果如下
[root@izbaa1sflaelstz sbin]# ./nginx
ngx_http_fastdfs_set pid=29714
[root@izbaa1sflaelstz sbin]#
测试:
通过filezilla 上传文件到阿里云(这里的文件端口是22,ftp才是21端口,别搞错了),
这是要上传到额图片,放到/usr/local/test目录下
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /usr/local/test/zq2.jpg
可以看到控制台打印了文件保存的地址:
好,直接复制url,访问:
好的,成功了。