PHP を使用して効率的で安全な FTP サーバーを実装する (1)
要約:
この記事では、主に 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管理页面,方便进行远程管理。<br><br> <br> 项目目录:<br> FtpServer<br> |<br> +-conf<br> | |<br> | +-config.php //FTP配置文件<br> | +-ssl.crt //ssl证书<br> | +-ssl.key //ssl密钥<br> |<br> +-inc<br> | |<br> | +-CSmtp.php //smtp发邮件类,用于FTP密码发送和重置<br> | +-ShareMemory.php //共享内存操作类<br> | +-User.php //用户管理、文件权限管理、IP访问控制<br> |<br> +-logs //日志文件<br> |<br> +-reference //参考文档<br> |<br> +-web<br> | |<br> | +-wwwroot //FTP Web管理网站<br> | +-CWebServer.php //FTP内置http服务器<br> |<br> +-CFtpServer.php //FTP服务器主程序<br> +-MyFtpServer.php //FTP入口程序
続く...
サンプルプログラムは http://share.realdatamed.com を参照してください