程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 使用PHP如何實現高效安全的ftp服務器(一)

使用PHP如何實現高效安全的ftp服務器(一)

編輯:PHP綜合

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服務器(二),可以點擊了解詳情。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved