サーバー設定 · 1 min read · Dec 14, 2025

Debian Etch における vsftpd と MySQL を使用した仮想ホスティング

Debian Etch における vsftpd と MySQL を使用した仮想ホスティング

バージョン 1.0
著者: Falko Timme

Vsftpd は Linux 用の最も安全で高速な FTP サーバーの一つです。通常、vsftpd はシステムユーザーと連携するように設定されています。この文書では、実際のシステムユーザーの代わりに MySQL データベースからの仮想ユーザーを使用する vsftpd サーバーのインストール方法を説明します。これははるかにパフォーマンスが高く、単一のマシン上で数千の FTP ユーザーを持つことができます。

MySQL データベースの管理には、phpMyAdmin のようなウェブベースのツールを使用できます。この手順書でも phpMyAdmin をインストールします。phpMyAdmin は、コマンドラインをいじる必要がない快適なグラフィカルインターフェースです。

このチュートリアルは Debian Etch (Debian 4.0) に基づいています。最初の 6 章で説明されているように、基本的な Debian Etch システムをすでにセットアップしている必要があります: https://www.howtoforge.com/perfect_setup_debian_etch

この手順書は実用的なガイドとして意図されています; 理論的な背景はカバーしていません。それらはウェブ上の他の多くの文書で扱われています。

この文書は一切の保証なしで提供されます!これはこのようなシステムを設定する唯一の方法ではないことを言いたいです。この目標を達成する方法はたくさんありますが、これは私が取る方法です。これがあなたにとって機能することを保証するものではありません!

1 予備ノート

このチュートリアルでは、ホスト名 server1.example.com と IP アドレス 192.168.0.100 を使用します。これらの設定はあなたの環境によって異なる場合があるため、適宜置き換える必要があります。

2 vsftpd、MySQL、および phpMyAdmin のインストール

Vsftpd には組み込みの MySQL サポートがないため、MySQL データベースに対して認証するために PAM を使用する必要があります。したがって、vsftpd、MySQL、および phpMyAdmin に加えて libpam-mysql をインストールします:

apt-get install vsftpd libpam-mysql mysql-server mysql-client phpmyadmin

MySQL ユーザー root のパスワードを作成します (yourrootsqlpassword を使用したいパスワードに置き換えてください):

mysqladmin -u root password yourrootsqlpassword

次に、以下のコマンドで確認します:

netstat -tap | grep mysql

MySQL がどのアドレスでリッスンしているかを確認します。出力が次のように見える場合:

tcp        0      0 localhost.localdo:mysql *:*                     LISTEN     2713/mysqld

これは MySQL が localhost.localdomain のみでリッスンしていることを意味しますので、前に設定したパスワードで安全です。しかし、出力が次のように見える場合:

tcp        0      0 *:mysql *:*                     LISTEN     2713/mysqld

あなたのホスト名の MySQL パスワードも設定する必要があります。そうしないと、誰でもあなたのデータベースにアクセスしてデータを変更できるからです:

mysqladmin -h server1.example.com -u root password yourrootsqlpassword

3 vsftpd 用の MySQL データベースの作成

次に、vsftpd という名前のデータベースと、vsftpd デーモンが後で vsftpd データベースに接続するために使用する MySQL ユーザー vsftpd を作成します:

mysql -u root -p
CREATE DATABASE vsftpd;  
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'ftpdpass';  
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';  
FLUSH PRIVILEGES;

文字列 ftpdpass を MySQL ユーザー vsftpd に使用したいパスワードに置き換えます。MySQL シェル内で、必要なデータベーステーブルを作成します (はい、テーブルは一つだけです!):

USE vsftpd;
CREATE TABLE `accounts` (  
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,  
`username` VARCHAR( 30 ) NOT NULL ,  
`pass` VARCHAR( 50 ) NOT NULL ,  
UNIQUE (  
`username`  
)  
) ENGINE = MYISAM ;
quit;

ご覧の通り、quit; コマンドで MySQL シェルを終了し、Linux シェルに戻りました。

ちなみに、(あなたの FTP サーバーシステムのホスト名が server1.example.com であると仮定しています) phpMyAdmin には http://server1.example.com/phpmyadmin/ でアクセスできます (server1.example.com の代わりに IP アドレスを使用することもできます) ブラウザで、ユーザー vsftpd としてログインします。次に、データベースを確認できます。後で phpMyAdmin を使用して vsftpd サーバーを管理できます。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。