老害の戯言
老害「大昔、Web開発はローカルマシンのWindowsとかに、XAMPPなどを入れて、Apache起動させて、Gitなんか無いから、Apache側のファイルを直接いじらずに、FTPでアップロードして確認したもんでね。」
若者「ApacheはNginxみたいなもの?FTPって何ですか?」
FTPはFile Transfer Protocolのことです。
FTPって何ですか?
FTPって何ですか?と言われるのは、しょうがない部分もある。
- 業務で使うことがない
- 業務&趣味でホームページを作ることがない
- 2023年でもホームページ・ビルダー22があるぞ!
- ソフトウェアのダウンロードでFTPサーバーを案内されることがなくなった
- Adobe Acrobat Readerのダウンロードでよく見た
- ブラウザーでFTPが使用できなくなった
- macOSからFTPコマンドが削除された(macOS High Sierra 10.13から削除された)
このようにFTPは完全に過去のテクノロジーとして葬り去ろうとしております。だがFTPというのは知らなくて良いテクノロジーなのでしょうか?
閑話休題、2023年現在FTPのクライアントソフトはどうなっている?
2023年現在、WindowsではFFFTPが静かにバージョンアップしてて、老舗の風格を感じます。
また、macOSではFTPコマンドがなくなっていますが、Finderの機能は生きています。
そのためChromeでFTPリンクをクリックすると、Finderが反応します。
ユーザの種類は登録ユーザでパスワード入力になる。
今回の例にあるAdobeの公開FTPサーバーは、AnonymousFTPなのでゲストを選択する。
接続を押下する。
Finderが開きます。
なお、ブラウザーのリンクが働かないときは、リンク先をコピーしておき、メニューからサーバーへ接続を選びます。
サーバーへ接続が出たら、コピーしたURLをペーストして接続します。
FTPと和解せよ準備編
ちなみに、AWSには「AWS Transfer Family」というのがあるので、実際に業務で使用するならば簡単に設定できます。
しかし、FTPと遊ぶだけで、いきなりAWSを使うのは!ということなので、とりあえず、ローカルマシンでFTPサービスを動かすことにします。
それならば有名どころのPure-ftpdを使うのが良いでしょう。
ただ、2023年において、Docker版やbrew版のPure-ftpdはApple SiliconのMacとは相性があまり良くないので、今回は初心に帰ってXAMPPを使ってみましょう。
なお、令和の時代にXAMPPをmacOSにインストールしようとすると、開発元を検証できないためという画面がでてしまいます。
そのため設定の「プライバシーとセキュリティ」から「このまま開く」をすると起動します。
起動したら、確認がでるので「開く」を押下します。
最後の確認が出るので、Macのパスワードを入れて「OK」を押下します。
やっとインストールが開始します。
「Next]を押下します。
「Next]を押下します。
「Next]を押下します。
待ちます。
「Finish]を押下します。
XAMPPのランチャーが起動します。
[Manage Service]を選びます。
ProFTPDを選択して[Start]を押下します。
これでFTPサービスが起動しました。
令和の時代にXAMPPとProFTPDをM2 Macで起動しました。
FTPクライアントソフト
macOSにはFTPコマンドがなくなっています。macOSでFTPコマンドを使用したいときはbrewにlftpという代替コマンドがあるので、それをインストールします。ついでにtelnetもインストールします。
そして、さきほど起動したFTPサービスにつなげてみます。
ProFTPDではデフォルトのユーザー名はdaemon
でパスワードはxampp
です。
lftp -u daemon localhost
これで準備完了です。
FTPと和解せよ実践編
やっと本題に入れます。
FTPと和解するには、FTPと会話するのが良いです。
FTPと会話するには、Telnetソフトを使用するのが良いです。
telnet localhost 21
USER daemon
PASS xampp
PWD
EPSV
こんな感じでFTPに対してコマンドをTelnetソフトを使って会話できます。
なお、自宅環境はIPv6なのでPASVコマンドは使えず、EPSVコマンドでパッシブモードに切り替えます。
令和の時代にFTPと会話してみました。
まとめ
- FTP自体が、ほぼロストテクノロジーとなっていた
- 令和の時代ではXAMPPの起動も一苦労する
- パッシブモードへのコマンドはIPv6用がある