首页 > 系统相关 >FastDFS--扩展篇(Php&&Apache2&&Nginx)

FastDFS--扩展篇(Php&&Apache2&&Nginx)

时间:2023-09-27 17:02:16浏览次数:29  
标签:http -- FastDFS fastdfs module apache2 && fdfs


   

    FastDFS不是通用的文件系统,只能通过专用的API来访问,目前提供了C JAVA PHP的API,下面我们来安装php扩展。

    让Fastdfs支持php,在FastDFS的源码包解压后里面有个php_client目录,进入此目录,参照README进行安装:

 


phpize

./configure

make

 make install

 

    安装完成后会自动把modules/fastdfs_client.so 拷贝到/usr/lib/php5/20090626目录下,只需要把fastdfs_client.ini copy到/etc/php5/conf.d目录下,执行php fastdfs_test.php 进行测试,php5 -m也会看到fastdfs_client模块,在README中还有相关的php函数解释,可以进行测试。

   测试:

    创建一个test-file文件,内容:I'm test file,然后使用fdfs_upload_file命令上传,结果如下:

FastDFS--扩展篇(Php&&Apache2&&Nginx)_nginx

    编写test.php测试界面:

 


<?php
 
   
 $file_info=fastdfs_get_file_info1('group1/M00/00/00/CgEGflArNZmlRB8kAAAADvvpdFc8638629'); 
 

 var_dump($file_info); 
 
   

?>

 

   测试结果如下:

FastDFS--扩展篇(Php&&Apache2&&Nginx)_java_02

 

    安装apache2扩展:

    在每台storage server上部署web server,直接对外提供HTTP服务,tracker server上不需要部署web server,如果请求文件在当前storage上不存在,通过文件ID反解出源storage,直接请求源storage,FastDFS扩展模块不依赖于FastDFS server,可以独立存在!

    在storage上安装apache2

 



 apt-get install apache2 apache2.2-common apache2.2-bin apache2-utils apache2-mpm-prefork libapache2-mod-php5 apache2-prefork-dev

 

    下载扩展包

 


 wget http://fastdfs.googlecode.com/files/fastdfs-apache-module_v1.10.tar.gz


 

    由于默认的包的配置都是centos下的配置,所以在安装前需要修改一下Makefile文件

 

1
 tar zxvf fastdfs-apache-module_v1.10.tar.gz 
 
   
2
 cd fastdfs-apache-module/src 
 
   
3
 vi Makefile 
 
   
4
#相对应的变量改成以下值,只针对debian6下apt方式安装的apache2
 
   
5
APACHE_BASE_PATH=/usr/share/apache2/
 
   
6
APXS=/usr/bin/apxs2
 
   
7
APACHECTL=/usr/bin/apachectl

 

    安装

 


make

 make install


 

    修改apache2配置

 

1
#创建mod_fastdfs.load文件
 
   
2
 vi /etc/apache2/mods-available/mod_fastdfs.load 
 
   
3
LoadModule fastdfs_module /usr/lib/apache2/modules/mod_fastdfs.so
 
   
4
<Location /M00>
 
   
5
 sethandler  fastdfs 
 
   
6
</Location>


1
#加载mod_fastdfs.so模块
 
   
2
a2enmod mod_fastdfs


1
#修改虚拟主机配置,修改相关变量值,增加alias行配置
 
   
2
 vi /etc/apache2/sites-enabled/000-default 
 
   
3
DocumentRoot /opt/fdfs/data/
 
   
4
<Directory /opt/fdfs/data/>
 
   
5
 
 
   
6
 alias /group1/M00 /opt/fdfs/data

 

    修改mod_fastdfs.conf配置

 

1
 vi /etc/fdfs/mod_fastdfs.conf 
 
   
2
base_path=/opt/fdfs
 
   
3
tracker_server=x.x.x.x:22122
 
   
4
store_path0=/opt/fdfs

 

    配置生效

 


1
/etc/init.d/apache2 restart

 

测试先上传一个图片:

 

1
fdfs_upload_file /etc/fdfs/client.conf 2.jpg

 

返回文件ID:group1/M00/00/00/CgEGflArRqG5Nsu_AACLn3wEca8908.jpg

    在浏览器中测试如下:

FastDFS--扩展篇(Php&&Apache2&&Nginx)_php_03

 

 

 

 

 

 

    添加nginx扩展:

    下载扩展包:

 


1
 wget http://fastdfs-nginx-module.googlecode.com/files/fastdfs-nginx-module_v1.10.tar.gz

 

    由于nginx的模块都为静态加载,所以需要编译安装nginx,过程如下:

 

1
./configure  --prefix=/etc/nginx2/  --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module 
 
   
2
 --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module  
 
   
3
 --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-file-aio --with-ipv6  
 
   
4
 --add-module=/root/fastdfs-nginx-module/src 
 
   
5
 
 
   
6
 make && make install

 

    修改nginx.conf,添加如下内容:

 

1
 vi /etc/nginx2/conf/nginx.conf 
 
   
2
#在server字段下添加以下内容
 
   
3
location /M00 {
 
   
4
 root /opt/fdfs/data; 
 
   
5
 ngx_fastdfs_module; 
 
   
6
}

/etc/fdfs/mod_fastdfs.conf配置文件的修改和apache2一致,经过测试可以正常工作

标签:http,--,FastDFS,fastdfs,module,apache2,&&,fdfs
From: https://blog.51cto.com/u_16203469/7626693

相关文章

  • 延迟队列
    一、延时队列的应用什么是延时队列?顾名思义:首先它要具有队列的特性,再给它附加一个延迟消费队列消息的功能,也就是说可以指定队列中的消息在哪个时间点被消费。延时队列在项目中的应用还是比较多的,尤其像电商类平台:1、订单成功后,在30分钟内没有支付,自动取消订单2、外卖平台发送......
  • 项目管理中常见的十个问题
    项目开发过程中会遇到很多问题,今天分享十个常见问题及应对思路。问题一,线上出bug了,是先找责任人,还是先处理问题?不是每一个问题都值得被追责的,指责也不能修复bug。发现问题后,关键是解决问题。问题解决后,再作复盘。复盘的目的也不是追责,而是为了防止问题再次发生。一个重大的错误应该......
  • linux中backport printk和front printk的区别
    在Linux内核中,"backportprintk"和"frontprintk"都是用于记录内核消息和调试信息的机制,但它们的工作方式和使用场景有一些区别。"backportprintk"是一种在内核中记录消息和调试信息的机制,可以将这些信息输出到控制台、串口、网络等目标。它通常用于在内核启动过程中的早期阶段,......
  • 低代码开发框架 助力企业打造新时代技术底座
    伴随着信息技术、互联网的日益发展,数字化转型已成为企业发展的新方向。软件作为企业数字化转型的重要工具、连接日常生活与经济的命脉,如今显得尤为重要。近年来,在政府、市场和企业的共同努力下,我国中小企业数字化发展的道路愈发平坦。但从实践上看,中小企业依然遇到诸多困难。对于企......
  • Hadoop 1.0.2 安装 使用 单机模式 Hadoop_1
    装完的HDFS用IE打开访问,查看其磁盘使用情况:http://192.168.33.10:50070/dfshealth.jsp step1.为Hadoop增加用户,记住设定的密码 Java代码 1.$sudoaddgrouphadoop2.$sudoadduser--ingrouphadoophduserstep2.ssh的安装与设置 由于Hadoop......
  • 运行在容器中Postgres数据库数据损坏后如何恢复?
    前言在使用K8S部署RSS全套自托管解决方案-RssHub+TinyTinyRss,我介绍了将RssHub+TinyTinyRSS部署到K8s集群中的方案.其中TTRSS会用到Postgres存储数据,也一并部署到K8s容器中.但是最近,由于一次错误操作,导致Postgres数据库的WAL损坏,Postgres......
  • 网站AI客服,提升现代企业客户服务的利器
    人工智能(AI)已经改变了各行各业,客户服务也不例外。近年来,随着人工智能的迅猛发展,网站AI客服作为一种全新的服务方式越来越受到大家的关注。很多企业都紧抓网站AI客服这个“抓手”,想要实现弯道超车。接下来我就跟大家讲一下为什么网站AI客服那么受重视。 |一、网站AI客服网站AI客服......
  • JavaScript——“==”和“===”区别(双等于号和三等于号区别)
    1.==:双等于号称为等值符。当等号两边为类型相同的值时,则直接比较值是否相同;当类型不同时,会先进行类型转换,转换为相同的类型后再进行比较。类型转化规则:1)当等号两边为boolean,string,number三者中任意两者进行对比时,会优先转换为number进行比较2)当等号两......
  • java程序,如何打印详细报错堆栈信息
    try{System.out.println(1/0);}catch(finalExceptione){log.error("ERROR","Errorfound:",e);log.error("ERROR","Errorfound:"+e.getMessage());log.error("ERROR","Errorfo......
  • 如何在几分钟内创建一个对话机器人?
    随着互联网的发展,人们迫切希望以快速高效的方式获取信息和解决问题,传统的人工客服渐渐地已经无法满足人们的需求。然而,对话机器人(chatbot)的出现可以很好地解决这个痛点。对话机器人是一种人工智能工具,通过模拟对话与用户进行交互。对话机器人可以回答问题、提供信息或执行任务,以......