サーバー管理 · 1 min read · Dec 22, 2025

Debian Lenny における PureFTPd と MySQL を使用した仮想ホスティング (クォータと帯域幅管理を含む)

Debian Lenny における PureFTPd と MySQL を使用した仮想ホスティング (クォータと帯域幅管理を含む)

バージョン 1.0
著者: Falko Timme
Twitterでフォローしてください

この文書では、実際のシステムユーザーの代わりに MySQL データベースからの仮想ユーザーを使用する PureFTPd サーバーのインストール方法について説明します。これははるかにパフォーマンスが高く、単一のマシンで数千の FTP ユーザーを持つことができます。それに加えて、このセットアップでのクォータとアップロード/ダウンロード帯域幅制限の使用方法も示します。パスワードはデータベースに MD5 文字列として暗号化されて保存されます。

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

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

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

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

1 前提条件

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

2 MySQL と phpMyAdmin のインストール

これらはすべて 1 つのコマンドでインストールできます:

aptitude install mysql-server mysql-client phpmyadmin apache2

次の質問が表示されます:

MySQL “root” ユーザーの新しいパスワード: <– yourrootsqlpassword
MySQL “root” ユーザーのパスワードを再入力してください: <– yourrootsqlpassword
自動的に再構成するウェブサーバー: <– apache2

3 MySQL サポート付き PureFTPd のインストール

Debian には、事前に設定された pure-ftpd-mysql パッケージがあります。次のようにインストールします:

aptitude install pure-ftpd-mysql

次に、すべての仮想ユーザーがマッピングされる ftp グループ (ftpgroup) とユーザー (ftpuser) を作成します。グループ ID とユーザー ID 2001 を、システム上で空いている番号に置き換えてください:

groupadd -g 2001 ftpgroup  
useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser

4 PureFTPd 用の MySQL データベースの作成

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

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

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

USE pureftpd;
CREATE TABLE ftpd (  
User varchar(16) NOT NULL default '',  
status enum('0','1') NOT NULL default '0',  
Password varchar(64) NOT NULL default '',  
Uid varchar(11) NOT NULL default '-1',  
Gid varchar(11) NOT NULL default '-1',  
Dir varchar(128) NOT NULL default '',  
ULBandwidth smallint(5) NOT NULL default '0',  
DLBandwidth smallint(5) NOT NULL default '0',  
comment tinytext NOT NULL,  
ipaccess varchar(15) NOT NULL default '*',  
QuotaSize smallint(5) NOT NULL default '0',  
QuotaFiles int(11) NOT NULL default 0,  
PRIMARY KEY (User),  
UNIQUE KEY User (User)  
) TYPE=MyISAM;
quit;

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

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

Share: X/Twitter LinkedIn

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

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