FTP サーバー (File Transfer Protocol Server) は、インターネット上のファイル ストレージとアクセス サービスを提供するコンピューターです。FTP に準拠したサービスを提供します。プロトコル。 FTP はファイル転送プロトコルです。名前が示すように、これはファイルの転送に特化して使用されるプロトコルです。簡単に言うと、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 で処理されるファイル名は文字化けしやすいため、Windows との一貫性を保つために、オペレーティング システムの文字セットを GB18030 に設定することをお勧めします。ただし、現在、ほとんどの 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 //FTP パスワードの送信とリセットに使用される smtp 電子メール クラス
|
+-ShareMemory.php //共有メモリ操作クラス
|
+-User.php //ユーザー管理、ファイル権限管理、IP アクセス制御
|
+-logs //ログファイル
|
+-reference //参考資料
|
+-ウェブ
|
|
|
+-wwwroot //FTP Web管理サイト
|
+-CWebServer.php //FTP内蔵httpサーバー
|
+-CFtpServer.php //FTPサーバーメインプログラム
+-MyFtpServer.php //FTPエントリープログラム
この記事はまずはここで紹介し、今後も更新していきます。