使用PHP如何实现高效安全的ftp服务器(一)

FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。

摘要:

    本文主要阐述使用PHP的swoole扩展实现ftp服务器,同时扩展ftp服务器个性化功能和安全性。真正实现一个自己完全掌控的ftp服务器,可以个性化定制的ftp服务器。

正文:

  FTP服务器想必大家都不陌生,使用起来,现成的软件也很多。不过免费的软件功能有时候并不符合自己需求,又无法二次开发,付费软件价格又比较高昂。PHP的swoole扩展,是PHP语言的高性能网络通信框架,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。

  Swoole可以广泛应用于互联网、移动通信、企业软件、网络游戏、物联网、车联网、智能家庭等领域。 使用PHP+Swoole作为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。

  Swoole底层内置了异步非阻塞、多线程的网络IO服务器。PHP程序员仅需处理事件回调即可,无需关心底层。与Nginx/Tornado/Node.js等全异步的框架不同,Swoole既支持全异步,也支持同步。

  有了这个基础,基于TCP/IP协议的服务器开发就变得容易了。或许大家会问,C#等其他语言同样可以实现啊,为什么用PHP呢?我想主要考虑的还是开发效率。PHP是无需编译的脚本语言,开发部署速度快。

  无需赘言,这里列出步骤:

  00  准备平台,我这里使用的CentOS7;

  01  安装php和swoole扩展,请参考http://wiki.swoole.com/wiki/page/6.html

  02  设置字符集,由于ftp处理文件名容易出现乱码,建议将操作系统的字符集设置成GB18030,这样与Windows保持一致,目前大部分ftp客户端虽然也支持utf8文件名编码,但是,使用起来比不如意。如何好的解决方案请不吝告知,非常感谢;

  03  开始编写php程序,测试php程序;

  04  部署php版的ftp服务器。

  本文要实现ftp服务器的功能目标有:

  * 用户,组管理;
  * 密码自助修改与重置;
  * 文件夹权限管理;
  * IP访问控制;
  * 在线用户查看;
  * 磁盘空间使用查看;
  * SSL支持,保护密码及文件的传输安全;
  * 内置web管理页面,方便进行远程管理。  

项目目录:  

FtpServer    
|    
+-conf    

|    
|  
+-config.php  //FTP配置文件    
|  
+-ssl.crt    //ssl证书    
|  
+-ssl.key    //ssl密钥    
|    
+-inc    
|  
|    
|  
+-CSmtp.php     //smtp发邮件类,用于FTP密码发送和重置    
|  
+-ShareMemory.php //共享内存操作类    
|  
+-User.php     //用户管理、文件权限管理、IP访问控制    
|    
+-logs  //日志文件    
|    
+-reference //参考文档    
|    
+-web    
|  
|    
|  
+-wwwroot    //FTP Web管理网站    
|  
+-CWebServer.php //FTP内置http服务器    
|    
+-CFtpServer.php  //FTP服务器主程序    
+-MyFtpServer.php  //FTP入口程序

此篇文章先给大家介绍到这里,后续还会持续更新。关于使用PHP如何实现高效安全的ftp服务器(二),可以点击了解详情。

(0)

相关推荐

  • win2008 r2 服务器环境配置(FTP/ASP/ASP.Net/PHP)

    以下是FTP/ASP/PHP/ASP.Net环境配置 一.FTP与ASP安装流程通过远程登录VPS,点击计算机管理>角色1.1首先我们选择自己需要装的配置环境ASP与FTP,所以只要在前面打勾再安装就可以了 1.2:需要安装的配置,确认安装 1.3:安装完成 二.安装PHP环境2.1首先我们通过在线平台安装PHP所需要的软件配置 2.2进入平台>产品>框架>选择PHP5.3.8与Windows Cache Extension 1.1 for PHP 5.3安装 2.3安装确认 2.

  • php实现从ftp服务器上下载文件树到本地电脑的程序

    复制代码 代码如下: /* 用ftp_nlist()函授时,返回的数组值会有两种类型:因服务器不同而异 a:单独的文件名 b:包含目录的文件名. 如果挪用,请注意更改此处. */ <?php function download_file($dir,$fc,$_FILE_) { $fn=ftp_nlist($fc,".");//列出该目录的文件名(含子目录),存储在数组中 $size=sizeof($fn); $dir=($dir=="")?$dir:('/'.

  • 使用PHP如何实现高效安全的ftp服务器(二)

    在上篇文章给大家介绍了使用PHP如何实现高效安全的ftp服务器(一),感兴趣的朋友可以点击了解详情.接下来通过本篇文章给大家介绍使用PHP如何实现高效安全的ftp服务器(二),具体内容如下所示: 1.实现用户类CUser. 用户的存储采用文本形式,将用户数组进行json编码. 用户文件格式: * array( * 'user1' => array( * 'pass'=>'', * 'group'=>'', * 'home'=>'/home/ftp/', //ftp主目录 * 'ac

  • 使用PHP如何实现高效安全的ftp服务器(一)

    FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务. FTP是File Transfer Protocol(文件传输协议).顾名思义,就是专门用来传输文件的协议.简单地说,支持FTP协议的服务器就是FTP服务器. 摘要: 本文主要阐述使用PHP的swoole扩展实现ftp服务器,同时扩展ftp服务器个性化功能和安全性.真正实现一个自己完全掌控的ftp服务器,可以个性化定制的ftp服务器. 正文: FTP

  • 用Linux构建高效FTP服务器方法分享第1/2页

    在众多网络应用中,FTP(文件传输协议)有着非常重要的地位.Internet中一个十分重要的资源就是软件资源,而各种各样的软件资源大多数都放在FTP服务器中.与大多数Internet服务一样,FTP也是一个客户机/服务器系统.用户通过一个支持FTP协议的客户机程序,连接到主机上的FTP服务器程序.用户通过客户机程序向服务器程序发出命令,服务器程序执行用户发出的命令,并将执行结果返回给客户机. FTP服务可以根据服务对象的不同分为两类:系统FTP服务器只允许系统上的合法用户使用:匿名FTP服务器(

  • CentOS 7下安装配置proftpd搭建ftp服务器的详细教程

    proftpd全称:Professional FTP daemon,是针对Wu-FTP的弱项而开发的,除了改进的安全性,还具备许多Wu-FTP没有的特点,能以Stand-alone.xinetd模式运行等.ProFTP已经成为继Wu-FTP之后最为流行的FTP服务器软件,越来越多的站点选用它构筑安全高效的FTP站点,ProFTP配置方便,并有MySQL和Quota模块可供选择,利用它们的完美结合可以实现非系统账号的管理和用户磁盘的限制.<摘抄百度百科> 本章通过下载源码的方式安装,可以到官网下

  • ftp服务器FileZilla Server详细配置教程

    FileZilla Server下载安装完成后,必须启动软件进行设置,由于此软件是英文,本来就是一款陌生的软件,再加上英文,配置难度可想而知,小编从网上找到一篇非常详细的教程进行整理了一番,确保读到这篇教程的同学都能够进行免费ftp服务器FileZilla Server配置. 运行FileZilla Server Interface.exe,得到以上界面,如果是第一次进入,直接点击ok即可.我们可以在「Administrator password:」栏位中输入本服务器Filezilla服务的密码

  • 暴力破解FTP服务器技术探讨与防范措施分享

    大家通常会认为暴力破解攻击只是针对某一种FTP服务器发起的攻击,能具有代表性吗? 随着Internet的发展出现了由于大量傻瓜化黑客工具,任何一种黑客攻击手段的门槛都降低了很多,但是暴力破解法的工具制作都已经非常容易,大家通常会认为暴力破解攻击只是针对某一种FTP服务器发起的攻击,能具有代表性吗?可以拓展到其他的网络?或服务器上吗?答案当然是肯定的.暴力破解这种软件,使用起来没有什么技术含量原理就是一个接一个的试,直到试验出正确的密码,也就是破解成功了.不过这种破解方式成功几率不高,耗费时间多,

  • 批处理bat下载FTP服务器上某个目录下的文件

    本代码以下载FTP服务器上某个目录下的所有文件为例. 如果需要下载某个目录下的.txt类型的所有文件,请把 mget *.* 改成 mget *.txt 如果需要下载某个目录下的某一个文件a.txt,请把 mget *.* 改成 get a.txt @echo off rem 指定FTP用户名 set ftpUser=FTPUSERNAME rem 指定FTP密码 set ftpPass=FTPPASSWORD rem 指定FTP服务器地址 set ftpIP=192.168.0.2 rem 指

  • 批处理bat下载FTP服务器上指定天数之前的文件

    @echo off rem 指定FTP用户名 set ftpUser=asx rem 指定FTP密码 set ftpPass=asx-asx rem 指定FTP服务器地址 set ftpIP=172.19.103.7 rem 指定待下载的文件位于FTP服务器的什么位置 set ftpFolder=/export/home/PROD/ntcdata rem 指定从FTP下载下来的文件存放到什么地方 set LocalFolder=E:/Temp rem 指定下载几天前的文件 set DaysAgo

  • Filezilla server配置FTP服务器中的各种问题与解决方法

    公司很多资料需要通过ftp上传,那么就需要配置一个FTP服务器,找了一台Windows服务器捣鼓,开始按网上教程自己配置特别麻烦,何西西说用Filezilla比较方便,就去Filezilla官网下载了Filezilla Server,本来以为会很轻松搞定,没想到还是碰到一堆坑,记录下来方便以后查阅. 服务器:Windows Web Server 2008 R2,64位 坑1:安装Filezilla Server报错 "could not load TLS network. Aborting st

  • FTP服务器详解之监控ftp服务器、上传文件到ftp服务器、ftp文件监控的方法

    现在FTP文件服务器的使用极为普遍,可以方便地将文件实时存储在FTP文件服务器上,那么如何搭建FTP文件服务器呢,以及如何监控FTP文件服务器文件访问操作日志情况呢?详细如下: 第1页:FTP服务器的作用 FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务.FTP服务器常常被用来进行文件共享和传输,是互联网领域必不可少的一环. FTP服务器的作用 FTP服务器是为了解决文件传输障碍问题而产生的.那么FT

随机推荐