RのWeb制作

Webサービス制作のための技術情報を。データ分析(Python、機械学習コンペ他)や自作野球ゲームMeisyoのこと中心。

Web制作 VPS

(VPSでつくる) WinSCPでFTP接続

投稿日:2021年5月7日 更新日:

連載第十回目です。

これまではVPSサーバーに対し、viエディタで色々なファイルを編集してきました。
ただ、今後はFlaskアプリなど、かなり作り込んだサービスの導入テストを行いますので、一ファイルずつviエディタで書き込んでると日が暮れます。

そのため、FTP通信を使って、VPSサーバーにファイルを転送してしまいましょう。

この記事は、VPSで作るPythonでのWebアプリ運用環境の連載記事です。
その他については上記ページをお読みください。

1. ユーザーの作成

FTPユーザー(ftp-user)を作ります。他の名前でも構いません。
パスワードも設定しておきましょう。

useradd ftp-user
passwd ftp-user

あとは、ユーザーが操作できる最上位のディレクトリのパーミッションを0777に設定しておきます。

chmod 777 /usr/share/nginx

2. FTPのインストール

FTPパッケージのインストールを行います。

yum -y install vsftpd

3. FTPの設定

FTPの設定ファイル(/etc/vsftpd/vsftpd.conf)を2通り変更します。
(1)内容の追記

# userlist_fileで指定指定したユーザを接続可能にする
userlist_enable=YES

# アクセスファイル(/etc/hosts.allow, /etc/hosts.deny)をアクセス制御に利用しない
tcp_wrappers=NO

# ドットから始まるファイルを含めた一覧を返す
force_dot_files=YES

# ファイル(またはディレクトリ)のタイムスタンプの表示をローカルタイムで表示する
use_localtime=YES

# ユーザー毎の設定ファイルの場所を指定する。
user_config_dir=/etc/vsftpd/user_conf

# chroot設定で許可する
allow_writeable_chroot=YES

# chroot設定で許可するを設定すると、下記エラーが防止できます。
OOPS: vsftpd: refusing to run with writable root inside chroot()

(2)コメントアウトから有効にする

# ルート設定有効ユーザー
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

意外と追記内容(赤枠)が多いですが、問題ありません。

ルート設定ユーザーリストファイル(/etc/vsftpd/chroot_list)を下記の通りにしてください。

ftp-user

※改行で新規ユーザーを追加可能です。

ユーザー設定用ディレクトリとファイルを作ります。

mkdir /etc/vsftpd/user_conf
vi /etc/vsftpd/user_conf/ftp-user

ユーザー設定用ファイル(/etc/vsftpd/user_conf/ftp-user)を下記の通りにしてください。

local_root=/usr/share/nginx

※コピペすると先頭数文字が切れる場合があるので注意ください。

いつもの通りサービスのスタートと再起動可能設定を行います。

systemctl enable vsftpd
systemctl start vsftpd

4. FTPのテスト

仕様ソフトはWinSCPを例にしていますが、他ソフトでも構いません。

下記の通り設定します。
IPアドレスは環境に応じて変更してください。

パッシブモードOFFだと20番接続、パッシブモードONだと21番接続にします。

※もし接続できて、ディレクトリが表示されない場合はONにしてください。

接続すると下記のような表示となります。
上位のディレクトリに移動する(赤枠)をクリックしても、設定したディレクトリより上には行けないことを確認できます。

上位のディレクトリに行けない設定にするのには、セキュリティの観点から言って正解です。
FTPユーザーはファイルを送受信するだけの役割であり、サーバーの中身は見る必要はありません。

おつかれさまでした。

おわりに

今回でFTPでのファイル送受信が可能となり、前回行ったデータベースと合わせて、本格的なアプリを構築する準備ができました。
次回は、Pythonの軽量なフレームワークFlaskで本格的なアプリを構築していきます!

ちなみに、FTPは平文でファイルをやり取りするためセキュリティ面に脆弱性があります。
よりセキュリティを高めるなら、SFTPなどを利用することをお勧めします。

この記事は、VPSで作るPythonでのWebアプリ運用環境の連載記事です。
次は、11. PythonでMariaDB(MySQL)へ接続できるアプリを触ってみようです。

-Web制作, VPS

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

[Meisyo]ゲームのUIを改善し続ける意味とは

1ヶ月に3回はUIが変わっているMeisyo。 何故変え続けているのか。 説明しよう! 今悪いポイント 簡単に言うと新規登録ユーザーさんが定着しない! チュートリアルでも最終ステップまでの到達率が75 …

[Meisyo]投手交代アルゴリズムの変更

要望 投手起用と代打について現状自分は投手起用をこんな感じにしていて 代打は6回以降にしたいのですが投手の数の関係で9回以降に代打を起用された場合に野手が登板することになり困っています。代打起用を何回 …

[Meisyo]ver0.04へのアップデート

Meisyoがバージョン0.04になりました。 バージョンNo.の基準はありません。(1.00(正式リリース)が遠い) 下記機能が0.04で追加されました。 目的としては、「ユーザがゲームを長く楽しめ …

no image

現代PHPの正しい道「PHP: The Right Way」の紹介とその要約

時代遅れの本や情報があふれている。そのため「何年前のコレ?」というコードが広まっている。 私もまずいコードを書いていた。悪意がある頭のいい人が少し手を加えるだけでデータベースが死んでしまうようなコード …

Webサイトの更新を続ける秘訣

何かを続けることって辛くありませんか? 実は・・・続けることに努力は必要ありません。 あなた自身に対して合う方法を設定すれば、うまくいきます。 更新を続ける秘訣 報酬を設定する やる時間を決める やら …