zoukankan      html  css  js  c++  java
  • fastdfs及php扩展在ubuntu14.04的安装配置

    一:简单介绍                 

               FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。

               FastDFS 是一个 C 语言实现的开源轻量级分布式文件系统,作者余庆(happyfish100),支持 Linux、FreeBSD、AID 等 Unix 系统,解决了大数据存储和读写负载均衡等问题,适合存储 4KB~500MB 之间的小文件,如图片网站、短视频网站、文档、app 下载站等,UC、京东、支付宝、迅雷、酷狗 等都有使用,其中 UC 基于 FastDFS 向用户提供网盘、广告和应用下载的业务的存储服务 FastDFS 与 MogileFS、HDFS、TFS 等都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务.

               在下一个文档我会做详细的说明。

                开源地址:https://github.com/happyfish100/fastdfs/

                相关文档: http://www.csource.org

    二:在ubuntu14.04的安装配置过程

                1:fastDFS内部绑定了libevent作为http服务器,所以首先安装libevent

                   sudo apt-get install libevent-dev

                2:fastdfs v5.0的版本需要首先编译安装libfastcommon

                    libfastcommon下载地址:https://github.com/happyfish100/libfastcommon

                    fastdfs的下载地址:https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz

                    分别解压解包,我的放在/home/ubuntu/apk/

               3:编译安装libfastcommon

                     cd libfastcommon

                     ./make.sh

                     sudo ./make.sh install

                4:修改pthread位置

                     sudo find / name 'libpthread.so'返回的结果为:/usr/lib/x86_64linux-gnu/libpthread.so

                     sudo find / name 'libpthread.a'返回的结果为:/usr/lib/x86_64linux-gnu/libpthread.a

                     进入fastdfs的目录

                     cd fastdfs5.05

                     vi make.sh              修改对应pthread的位置信息

                     

                     这里把路径修改成如图所示

                 5:编译安装fastdfs

                      ./make.sh

                      ./make.sh install

                 6:如果我们仅仅想要安装编译php扩展,就可以跳过这几步对fastdfs的配置,直接开始php扩展的安装,但是不做前面几步是没有办法直接安装编译php的fastclient扩展的

                  7:tracker server配置

                      mkdir -p /home/ubuntu/apk/fastdfs5.05/data                我的安装文件路径:/home/ubuntu/apk/fastdfs5.05,创建fastdfs的存储数据的目录

                      sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf         其实很容易发现,在执行make.sh的时候在/etc/fdfs里面生成了tracker server,storage server client的配置文件的副本,如果想投入使用,就得把相应的文件改成conf文件后缀即可

                      sudo vi tracker.conf

                      修改几个基本的位置

           base_path=/home/ubuntu/apk/fastdfs5.05/data          这个路径用来存储数据文件和日志文件,也就是说,tracker和storage服务器的日志文件都在这里查看
                       启动tracker server
                       /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
                       我把这句启动命令加入了开机启动,以防手动启动,在/etc/rc.local文件中最后加入这一行指令即可

                     8:storage server 配置

                          mkdir /home/ubuntu/apk/fastdfs5.05/data(如果我们的storage server和traker不在一台机器,需要这么做)    创建存储数据的目录
                          mkdir /home/ubuntu/apk/fastdfs5.05/image
                          sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf           同样把备份文件复制过来使用
                          修改配置
                          base_path=/home/ubuntu/fastdfs5.05/data
                          store_path0=/home/ubuntu/fastdfs5.05/image    (如果不设置的话,就会默认保存在base_path的路径中)
                          tracker_server=192.168.11.220:22122   (这里指定特定的tracker server)
                          storage有不同的分组,如果有多个分组,需要指定该storage对应的分组名
                          然后把一些其他配置文件复制到配置文件目录
                         cp /root/software/fastdfs-5.05/conf/http.conf /etc/fdfs
            cp /root/software/fastdfs-5.05/conf/mime.types /etc/fdfs/
                         新建目录之后简历storage存储目录的软连接,这为了方便管理,也可以不做

                         ln -s  /opt/fastdfs/image/data   /opt/fastdfs/image/data/M00

                         启动storage server

                         /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start              

                       9:进入fastdfs的php_client源码目录,进行php的phpize

                          cd /home/ubuntu/apk/fastdfs5.05/php_client

                          phpize

                          make &&sudo make install 

                          然后注意,要把fastdfs自带的php扩展追加到php的配置文件中

                         sudo  cat fastdfs_client.ini >> /etc/php5/cli/php.ini

                         mkdir /home/ubuntu/fastdfs5.05/data/php

                         sudo cp /etc/fdfs/client.conf.sample /etc.fdfs/client.conf

                         查看一下,fastdfs_client是否安装成功

                         php -m | grep fastdfs_client

                         发现并没有安装成功,原因是

                         libfastcommon.so,libfdfsclient.so默认安装到了/usr/lib64/libfastcommon.so/usr/lib64/libfdfsclient.so,而FastDFS主程序设置的lib目录是/usr/local/lib,所以设置软连接
                         ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
                         ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
                         ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
                         ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

                         其实也可以在我们一开始在make.sh的脚本里面修改,编译安装的默认地址,这里如果没有修改,就设置软连接

                         编辑配置文件

                         sudo vi client.conf

                        base_path=/home/ubuntu/apk/fastdfs5.05/data/php

                  tracker_server=192.168.11.220:22122

                  bind_ip=""                   (如果tracker server storage server在同一个机器上,就必须设置bind_ip为空,在使用的时候,才会重新分配,否则会出现ip被占用的问题)

                 10:我们现在可以使用php写一个脚本来调用fastdfs的函数 ,如 fastdfs_storage_upload_by_filename,如果函数存在,那么我们的php扩展就算安装成功

                         

                            vi test.php

                             <?php

                              var_dump(function_exists('fastdfs_storage_upload_by_filename'));

                              $ret = fastdfs_storage_upload_by_filename('/tmp/upload.html');

                              var_dump($ret); 

                              ?>

                    

  • 相关阅读:
    learnyou 相关网站
    hdu 3038 How Many Answers Are Wrong
    hdu 3047 Zjnu Stadium 并查集高级应用
    poj 1703 Find them, Catch them
    poj 1182 食物链 (带关系的并查集)
    hdu 1233 还是畅通工程
    hdu 1325 Is It A Tree?
    hdu 1856 More is better
    hdu 1272 小希的迷宫
    POJ – 2524 Ubiquitous Religions
  • 原文地址:https://www.cnblogs.com/dtiove/p/5788836.html
Copyright © 2011-2022 走看看