FTPサーバを使った開発をおこなう場合、各開発メンバそれぞれにFTPサーバを準備するのは骨が折れる作業です。 そういった場合は、Windows10で標準的に使えるFTPサーバを使用する方法が一般的と言えます。
今回は、Windows10上でFTPサーバを構築する方法と、動作確認方法まで紹介 していきます。
環境情報
IISを使ってFTPサーバを構築する
IISはInternet Infomation Service(インターネット インフォメーション サービス)の略で、Windowsに標準装備されているサーバサービス群 になります。 今回は、このIISを使ってFTPサーバを構築します。
IISを有効にする
IISはWindows10に標準搭載されていますが、デフォルトでは無効になっています。 まずはこれを有効にして、IISを使用できるようにします。
「すべてのコントロールパネル項目」→「プログラムと機能」から、『Windowsの機能の有効化または無効化』をクリックして、Windowsの機能ウィンドウをひらきます。
Windowsの機能ウィンドウにおいて、インターネットインフォメーションサービスの「FTP Service」と「IIS 管理コンソール」の2つをチェックし、OKボタンを押下して終了します。
変更の適用が始まりますので、しばらく待ちます。
「変更が完了しました」のメッセージが表示されれば、IISの有効化は完了です。
IISが有効化されたかを確認してみましょう。 Windowsのプログラムバーに「インターネットインフォメーションサービス(IIS)マネージャー」が表示されていれば、IISの有効化は成功です。
FTPユーザを作成する
FTPのユーザは、Windowsのユーザとして準備する必要があります。 管理ツール → コンピュータの管理からユーザを選択し、新しいユーザを作成します。
今回は、以下の情報を入力しています。
ユーザ名
ftp
フルネーム
FTPユーザ
説明
IIS接続用ユーザ
パスワード
password
作成ボタンを押下したら、ユーザが作成されていることを一覧で確認します。
FTPサイトの作成と設定
FTPサイトを作成し、ファイルの格納場所を確保します。
Windowsのプログラム検索でIISと入力するとIISが表示されるので、アプリケーションを選択してインターネットインフォメーションサービス(IIS)マネージャーを起動します。
接続ペーンで「サイト」を選択し、操作ペーンで「FTPサイトの追加」を選択します。
FTPサイトの追加ウィンドウが表示されます。
FTPサイト名は任意で構いません。 解りやすい名前をつける形でよいでしょう。 コンテンツディレクトリは、接続先のパスとなります。
今回は、以下の情報を入力しています。
FTPサイト名
FTP接続試験
物理パス
D:\temp
入力が完了したら次へボタンを押下します。
バインドとSSLの設定ウィンドウに移ります。 バインドするIPアドレスはすべて「全て未割当」を選択します。
FTPサイトを自動的に接続するはチェックでよいです。
SSLは無しにします。
入力が完了したら次へボタンを押下します。
バインドとは、FTPでの接続を指定したIPでのみ許可する設定となります。
バインドに関しては、複数のNICでIPアドレスを複数所有していなければ、「全て未割当」でよいです。
認証情報の入力に進みます。
認証方法は匿名とし、匿名ユーザに対して読み取り・書き込みを許可するようにします。
入力が完了したら終了ボタンを押下します。
サイトの一覧に追加したサイトが表示されていれば、サイトの追加に成功です。
DOSコマンドを使って動作確認
FTPサーバで想定通りに構築できたかを確認します。 Windowsに標準搭載されているFTPコマンドを使って確認するのが一番早いです。
以下のFTPコマンドは、DOSプロンプトで実行します。
ftpモードにする(ftp)
ftpコマンドで、ftpモードに移行します。
D:\work>ftp
ftp>
サイトに接続する(open)
openコマンドでサイトに接続をおこないます。 「open ※ホスト名」の書式になります。
今回はローカルPC上でFTPサーバを構築しているので、ホスト名はlocalhostになります。
ftp> open localhost
DESKTOP-U7JE3FQ に接続しました。
220 Microsoft FTP Service
200 OPTS UTF8 command successful - UTF8 encoding now ON.
ユーザ名とパスワードを入力すればFTPサーバにログインできます。 最初の手順でWindowsユーザとして作成したユーザ名とパスワードを指定します。
ユーザー (DESKTOP-U7JE3FQ:(none)): ftp
331 Anonymous access allowed, send identity (e-mail name) as password.
パスワード:
230 User logged in.
ftp>
ローカルディレクトリの指定(lcd)
転送するファイルが格納されているディレクトリ(転送元)に移動します。
ftp> lcd d:\work
ローカル ディレクトリは現在 D:\work です。
リモートディレクトリの指定(cd)
転送先ディレクトリに移動します。
ftp> cd ./dest
250 CWD command successful.
現在のディレクトリ位置を確認(pwd)
cdで移動しましたが、意図したディレクトリに移動されているかを確認します。
ftp> pwd
257 "/dest" is current directory.
転送モードを指定(ascii bin)
転送モードはASCIIモード(ascii)とバイナリモード(bin)の二種類があります。 今回はファイルを転送しよう思いますので、asciiを指定します。
ftp> ascii
200 Type set to A.
ローカルディレクトリからFTPサーバへ転送する(put)
ファイルをFTPサイトにアップロードします。 アップロードはputコマンドを使用します。
ftp> put test.txt
200 EPRT command successful.
150 Opening data connection
226 Transfer complete.
ftp: 16 バイトが送信されました 0.01秒 1.60KB/秒。
「Transfer complete.」が表示されれば転送成功です。 実際に転送されているかは、FTPサーバをエクスプローラーで確認可能です。
FTPサーバからローカルディレクトリに転送する(get)
FTPサーバからファイルをダウンロードします。 ダウンロードはgetコマンドを使用します。
ftp> get test.txt
200 EPRT command successful.
125 Data connection already open; Transfer starting.
226 Transfer complete.
ftp: 16 バイトが受信されました 0.00秒 16000.00KB/秒。
「Transfer complete.」が表示されれば転送成功です。 ローカルディレクトリ(lcdで確認)にgetしたファイルが表示されていれば転送成功です。
FTPのコマンドを確認する(help)
この記事で紹介したコマンド以外にも、ftpコマンドは存在します。 全てのコマンドはhelpコマンドで確認できます。
ftp> help
コマンドは省略することができます。コマンド:
! delete literal prompt send
? debug ls put status
append dir mdelete pwd trace
ascii disconnect mdir quit type
bell get mget quote user
binary glob mkdir recv verbose
bye hash mls remotehelp
cd help mput rename
close lcd open rmdir
まとめ
IISでFTPサーバを構築してから動作確認まで解説しました。
まとめ
IISはWindowsに標準搭載されているサーバサービス群
構築後の動作確認はFTPコマンドで実施するのが早い
FTPコマンドを使用すると、実際のFTPの挙動を直感的に把握することもできるのでお勧めです。