私の勤務している会社では、サーバーのリース期間が5年間なので、5年に1度サーバーの設定をしなければなりません。
サーバー構築を専属でやっている人ならともかく、違う仕事しながら「5年前にやった設定なんて覚えてませーん!」というのが本音です。
Webサーバーだけならレンタルサーバー借りた方が断然安いのですが、他のシステムと連携させたり、ファイルサーバー等も1台のサーバーで兼用している場合は、自社サーバーを設置ている企業は多かれ少なかれあるのではないかと思っています。
そこで、自分用の備忘記録も兼ねてWebサーバーの構築方法(当記事ではFTPサーバーの構築)をできるだけ詳しく記録していこうと思っています。
この記事を読むと、テレワークで自宅にいながら会社のパソコンやサーバーからファイルを取得して修正したい、会社(自宅)でFTPサーバーを構築したい場合は解決の手助けになると思います。
画面キャプチャーで説明している対象OSは「Windows10」「WindowsServer2019」ですが、Windowsのバージョンにより設定画面は多少違ったりすると思いますが、Windows XP以降であれば問題なく動作はします。
当記事では「nekosogiFTPd」を使った『FTPサーバー』の構築方法を詳しく解説していきます。
超重要な事前知識
『nekosogiFTPd』は、サーバーアプリケーションです。
あなたのパソコンやサーバーが不特定多数の人に接続される恐れがあり、設定をいい加減にしてしまうと、あなたのパソコンやサーバーが破壊される恐れがあります。
ユーザーごとに設定したフォルダ内でのみファイル操作が可能になるように設定し、ローカル環境でテストを実施した後にサーバーを立ち上げるようお願いします。
※Cドライブ全体にアクセス可能な設定は絶対にNGです!!
FTPサーバーを立ち上げる際に留まらず、Webページ作成時においてもローカル環境でテストをして問題なく動作する事を確認してからサーバーにファイルを転送する必要があります。
例外として、HTMLのみで作られたWebページであれば、サーバーに転送後、公開されているWebページで直接確認してもさほど問題にはなる事は無いでしょう。
しかし、HTMLのみで作られたWebページであっても、ローカル環境で出来栄えをチェックしてからサーバーに転送するのが一般的です。
重要なのはここからで、Webページを「PHP」や「Perl」等のプログラミング言語で作成している場合は、絶対にローカルでの動作チェックが必要です。
やらかし率の高い事例を挙げると、プログラミングには「ループ処理」というものがあり、意図せず無限ループに陥ってしまうケースがあります。
この無限ループをレンタルサーバーで走らせてしまうと、サーバーに絶大な負荷をかけ、一時的にWebサーバーにアクセスする事が不可能な状態になる事があります。
最終的には、タイムアウトでプログラムは止まってくれるものの、何度もやっていると最悪、レンタルサーバーの契約を解除される可能性すらあり得ますので、ローカル環境でのテストは必須という訳です。
では、自社(自宅)サーバーなら良いのか?という話ですが、サーバーを直接操作してサーバーでローカルテストしている場合に限り、即タスクマネージャーを立ち上げ、強制終了により無限ループを止める事ができますので重大な問題に発展する事は無いと言えるでしょう。
とはいえ、自社(自宅)サーバーで運用する場合でも、パソコンでローカルテストした後、サーバーにFTP転送するやり方を推奨いたします。
FTPとは?
長ったらしい正式名称はありますが、一般的に「エフ ティー ピー」と呼ばれています。
簡単に言うと、パソコンからサーバーにファイルを転送する規格の事ですね。
例えば、自分のパソコンでホームページ作成ソフトやHTMLを使ってホームページを作成したとします。
出来上がったホームページは、そのままでは誰も見る事ができません。なぜなら、自分のパソコンがインターネットに公開されてないからです。
インターネットに公開されているサーバーにFTPソフトを使いファイルを転送して初めて、ホームページが公開(ページを書き換えたのであれば更新)される事になります。
下図は、パソコンからサーバーにファイルを転送する時に使うソフト『FFFTP』の例です。真ん中から分かれており、左側が自分のパソコン(クライアント)で右側がサーバーです。新しく作成したファイルや更新したファイルを左から右へドロップすれば簡単に転送できるソフトです。
注意点としては、クライアントとサーバーのファイルやフォルダの階層も含めた構造を全く同じにして管理しないと、ローカルとサーバーで同じ結果を得られない事があります。
nekosogiFTPdのダウンロード編
以下のURLから『nekosogiftpd Ver.2.07』をダウンロードし、適当なフォルダへ解凍して下さい。
https://plus-net.fun/dl/nekosogiftpd2.07.zip
最終更新日が2007年10月になっており、結構古いソフトウェアですが自分的にはかなり使い易いので、現在でも現役で使用しています。
何より、2021年現在最新のOSであるWindows10はもとより、Windows Sever2019でも問題なく動作しましたので、重宝しています。
しかし、既に公式ページは閉鎖されており、ネット上でダウンロード可能な「窓の杜」や「Vector」では、最終版では無いのです。
そこで、readmeを確認すると、バイナリであれば再配布は可能とありましたので、当ブログを運用しているサーバーで最終版2.07をダウンロードできるようにしました。
nekosogiFTPdの起動編
①「nekosogiftpd.exe」をダブルクリックして起動します。※私はDドライブ直下に解凍したフォルダを置きました。
②セキュリティ警告が出た場合は、上図を参考に2箇所チェック入れてからアクセスを許可するをクリックします。※Windows10はセキュリティ警告が出て、WindowsServer2019では出なかったです。
③タスクバーの通知領域に現れた「nekosogiFTPd」のアイコンをダブルクリック
④デスクトップ上にウィンドウが出て、FTPサーバーが起動しサービスが開始した事を確認できます。
ダブルクリックしても「nekosogiFTPd」のウィンドウが出てこない場合がある?
デスクトップのどこかに最小化された上図参照「nekosogiFTPd」があるので探して最大化またはウィンドウの大きさを調整して下さい。
私の場合は、Windows10WindowsServer2019でデスクトップ左下辺りにこのような現象になりました。
nekosogiFTPdサービス登録編
本章の目的は、サーバーやパソコン起動時に自動的にサービスを開始するための設定をする事です。
※必須設定ではありませんので、必要に応じて設定して下さい。
①「パソコンのアイコン」をクリックするとシステム設定ウィンドウが現れますので「Advance」をクリックします。
②サービスに登録をクリックします。
③現段階でウィンドウが3枚重なっていますので、OKボタンを2回押して上図のウィンドウが残るようにします。
nekosogiFTPdのユーザー登録編
本章の目的は、クライアント側でログインするために必要なユーザーを登録をする事です。
※必要に応じて、FTPを使う人数分を登録して下さい。
Webページ用のデータを入れる専用のフォルダです。
今後、別の記事で紹介する予定ですが、Apacheのf設定ファイル「httpd.conf」に設定するドキュメントルート『設定例:DocumentRoot “D:¥www”』がWebページで使うフォルダです。
ユーザーが1人の場合は必然的に管理者となるため、このドキュメントルートをユーザー別ホームディレクトリに設定すれば良い事になります。
複数のユーザーを設定する場合は、ドキュメントルートの中に、ユーザーごとにフォルダを作り管理していく形になります。
もっと言ってしまうと、管理者はドキュメントルートに設定する事でWebページ全体を把握でき、担当者は、各担当者に割り当てられたフォルダのみ閲覧や操作をできるように設定すると良いかと思います。
①「ユーザー設定のアイコン」をクリック、「追加」をクリックします。
④全ての入力が済んだら「OK」をクリックします。
⑤ユーザーリストに登録された事を確認したら「OK」をクリックします。
ローカルテスト編
本章の目的は、前章で登録したユーザー情報とFFFTPを使ってFTP接続テストをする事です。
ローカルテストは、1台のパソコンまたはサーバーで完結するテストですから、ファイヤーウォールの設定変更は不要です。
①FFFTPを起動し「新規ホスト」をクリックします。
②ホスト名は、「localhost」または、現在操作している「パソコンやサーバーのコンピュータ名」を入力します。
③ユーザー名とパスワードは「ユーザー登録編」で設定したものを入力します。
④ローカルの初期フォルダは前章で登録した「ユーザー別ホームディレクトリ」を選択します。
⑤「OK」ボタンをクリックします。
⑥新しくできた接続先を選択して「接続」をクリックします。
⑦接続が成功すると、同じパソコンなので、当然ですが左側と右側のファイルやフォルダ一覧は完全一致します。
おまけ:エクスプローラーでテスト
FFFTPを使わなくても、Windows標準のエクスプローラーを使ってテストする事ができます。
※環境に寄って「localhost」だとうまくいかない事がありますので、その場合は「コンピュータ名」を入れて下さい。
※私の環境ですと「Windows10」「WindowsServer2019」ともに『ftp://localhost』では、エラーが出て接続失敗し「ftp://コンピュータ名」だと問題なく接続に成功しました。FFFTPの場合は『localhost』で問題なく接続できましたので、Windowsエクスプローラーでのlocalhost接続ができないように制御されているのかもしれませんね。本来、同じパソコン同士でFTPを使ってファイル転送なんてしませんから。
①アドレス欄に『 ftp://コンピュータ名』と入力してEnterキーを押します。
②ユーザー名とパスワードを入力してログオンをクリックします。
③フォルダやファイルが表示されれば接続成功です。
ファイアウォールの設定編
本章の目的は、ファイアウォールの設定を変更し、同一ネットワーク内のコンピュータからのアクセスを許可する事です。
※この段階では、まだインターネットを介して、外部からのアクセスはできません。
①コントロールパネルからファイアウォールの設定画面を開き「WindowsDefenderファイアウォールを介したアプリまたは接続を許可」をクリックします。
②「ftpsrv」にチェックを入れ、プライベートとパブリックの2箇所にチェックを入れて下さい。
以上で、ファイアウォールの設定は完了です。
2台のパソコンまたは、サーバーとパソコンを使って同一ネットワーク内で、FTP接続テストをしてみましょう。
FTP接続テストは『ローカルテスト編』を参照して下さい。
注意点は、FFFTPホストの設定(下図参照)。ホスト名を「localhost」ではなく「接続したいコンピュータ名」を入れるだけです。
外部からアクセス編
本章の目的は、インターネットを介して外部から、FTPソフトを使ってファイル転送をする方法です。
※Webページデータをサーバーに転送するのがFTPの本来の使い方ですが、昨今コロナ禍でテレワークを強いられている方も多いと思います。テレワークで、自宅にいながら会社のサーバーやパソコンからファイルを取得したり、自宅のパソコンから会社のサーバーやパソコンへファイルを転送したりという使い方もできますので、参考にしてみて下さい。ただ、最近はクラウドサービスも使い易いのが増えていますので、テレワークでファイル共有等は、クラウドサービスの方が良いかなと…。
✅ 外部からアクセスを許可するには、ルーターの設定が必要になってきます。
✅ ブラウザを使用し、ルーターのIPアドレスにアクセスして設定をします。
✅ ブラウザとは「Edge」「Google Chrome」「Fire Fox」「Internet Explorer」等です。
以前はBuffalo社製のルーターを使っていましたが、安価でかつ無線の電波も強いTP-LINK社製のものに変えました。
価格も6,000円前後と手頃となっていますので、オススメできます。
Amazonde見てみる
①詳細設定からNAT転送から仮想サーバーを開きます。
②追加を押し、サービス名でFTPを選択すると内部IP以外は自動で入力されますので、FTPサーバーのIPアドレスを入力してOKをクリックします。
③ルーターを再起動すれば、設定完了です。
グローバルIPを調べたい方はこちらしかし、グローバルIPは基本的には変動しますので、変動するたびにグローバルIPを書き換えなければならないので、実用的ではありません。プロバイダによっては、固定IPというサービスもありますが、基本的に有料です。固定IPサービスは、安い所でもAsahiNet月880円からで、OCNに至っては月7,480円からと1年間使ったら、レンタルサーバー代+自社ドメイン年間維持費用を上回る金額となってしまいます。そこで、無料のダイナミックDNSに登録してドメイン名を取得し、ドメイン名とグローバルIPアドレスを紐づけします。そして、グローバルIPアドレスが変更になったと同時に自動的にドメイン名とグローバルIPアドレスの紐づけ情報を更新してくれるDiceというソフトウェアの設定が必要になってきます。ここから先は、Windows+ApacheによるWebサーバー構築の記事で説明する予定となっています。まだ取り掛かってもいませんが、記事完成次第、本記事の文面も変更し、わかるようにしておきます。最後までお読みいただきありがとうございました。