サーバー設定 · 1 min read · Nov 06, 2025
ISPConfig 3 ProFTPd For Debian
ISPConfig 3 ProFTPd For Debian
1 はじめに
私はISPConfigの新しいユーザーで、数年間Linuxを触っています。私のサーバーは現在OpenVZのVPSで、ISPConfigに付属するデフォルトのpureftpdを実行することができないため、ProFTPdに切り替えることを検討し、使用するのはそれほど難しくないことがわかりました。
2 インストール前の注意
注意: これはクォータサポートを含んでいません。私のVPSはそれをサポートしていません。ftp_user_edit.phpをISPConfig3で修正せずにこの統合を改善する方法についての提案やアイデアがあれば教えてください。これらの手順はDebian 5.0 Lennyで実行されましたが、6.0でも同様に動作するはずです。他のディストリビューションでは、これらの手順を少し修正する必要があるかもしれません。
また、注意: このプロセスは新しいサーバーとISPConfig 3のインストールで問題なく動作しました。既存のサーバーで使用する場合は、作成されたすべてのftpユーザーを編集/保存する必要があり、他の問題を引き起こす可能性があります。将来的にこれを自動的に行う簡単なphpスクリプトを作成するかもしれません。発生する可能性のある問題については責任を負いませんので、自己責任でご利用ください。
3 インストール
実行
apt-get remove pure-ftpd-common pure-ftpd-mysql
apt-get install proftpd proftpd-mod-mysql
スタンドアロンとして実行グループとユーザーの作成
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c “proftpd user” -g ftpgroup ftpuser
4 データベースの設定
mysql -u root -p
Use dbispconfig
クエリを実行:
ALTER TABLE `ftp_user` ADD `shell` VARCHAR( 18 ) NOT NULL DEFAULT '/sbin/nologin',
ADD `count` INT( 11 ) NOT NULL DEFAULT '0',
ADD `accessed` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
ADD `modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00';
CREATE TABLE ftp_group (
groupname varchar(16) NOT NULL default '',
gid smallint(6) NOT NULL default '5500',
members varchar(16) NOT NULL default '',
KEY groupname (groupname)
) TYPE=MyISAM COMMENT='ProFTP group table';
INSERT INTO `ftp_group` (`groupname`, `gid`, `members`) VALUES
('ftpgroup', 2001, 'ftpuser');5 ProFTPdの設定
/usr/local/ispconfig/interface/lib/config.inc.phpを編集:
nano /usr/local/ispconfig/interface/lib/config.inc.php変数db_passwordを見つけます。
後で使用するためにパスワードをメモしてください。
/etc/proftpd/proftpd.confを編集
nano /etc/proftpd/proftpd.conf次を見つけます:
#Include /etc/proftpd/sql.conf次のように変更します:
Include /etc/proftpd/sql.conf/etc/proftpd/sql.confを編集
nano /etc/proftpd/sql.confすべての内容を消去し、次のように置き換えます:
#
# ProftpdのSQLベースの認証のサンプル設定。
#
# PAMベースのSQL認証を好む場合は使用しないでください。
#
DefaultRoot ~
SQLBackend mysql
# MySQLのパスワードはCRYPTを使用して暗号化されています。
SQLAuthTypes Plaintext Crypt
SQLAuthenticate users groups
# データベースに接続するために使用されます。
# databasename@host database_user user_password
SQLConnectInfo dbispconfig@localhost ispconfig _insertpasswordhere_
# ProFTPdに「usertable」のデータベース列の名前を伝えます。
# それらをdbの名前と一致させます。
SQLUserInfo ftp_user username password uid gid dir shell
# ProFTPdに「grouptable」のデータベース列の名前を伝えます。
# 再び名前はdbのものと一致します。
SQLGroupInfo ftp_group groupname gid members
# 最小UIDとGIDを設定 - そうでなければ999になります。
SQLMinID 500
# 存在しない場合は、ユーザーのホームディレクトリを必要に応じて作成します。
CreateHome off
# ユーザーがログインするたびにカウントを更新します。
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser
# ユーザーがファイルをアップロードまたは削除するたびにmodifiedを更新します。
SQLLog STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser
RootLogin off
RequireValidShell off
insertpasswordhereをISPConfigから取得したパスワードに変更してください。
MySQLデータベースが別のサーバーにある場合は、localhostをMySQLサーバーを表すように変更します。
/etc/proftpd/modules.confを編集
nano /etc/proftpd/modules.conf次を見つけます:
#LoadModule mod_sql.c次のように変更します:
LoadModule mod_sql.c次を見つけます:
#LoadModule mod_sql_mysql.c次のように変更します:
LoadModule mod_sql_mysql.c実行:
/etc/init.d/proftpd restart6 ISPConfig 3の変更
今、ISPConfigのファイルの1つを変更する必要があります。 これは理想的ではありません。新しいバージョンにアップグレードすると変更が失われますが、私が見つけたProFTPdを動作させる唯一の方法です。
/usr/local/ispconfig/interface/web/sites/ftp_user_edit.phpを編集
nano /usr/local/ispconfig/interface/web/sites/ftp_user_edit.php次を見つけます:
$uid = $web["system_user"];
$gid = $web["system_group"];次のように置き換えます:
$userinfo = posix_getpwnam($web["system_user"]);
$uid = $userinfo['uid'];
$gid = $userinfo['gid'];注意: 現在ISPConfigのWebパネルにログインしている場合は、変更がマシンに登録される前にログアウトする必要があります。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。