Виртуальный хостинг · 2 min read · Dec 14, 2025
Виртуальный хостинг с vsftpd и MySQL на Debian Etch
Виртуальный хостинг с vsftpd и MySQL на Debian Etch
Версия 1.0
Автор: Фалко Тимме
Vsftpd является одним из самых безопасных и быстрых FTP-серверов для Linux. Обычно vsftpd настраивается для работы с системными пользователями. Этот документ описывает, как установить сервер vsftpd, который использует виртуальных пользователей из базы данных MySQL вместо реальных системных пользователей. Это значительно более производительно и позволяет иметь тысячи FTP-пользователей на одной машине.
Для администрирования базы данных MySQL вы можете использовать веб-инструменты, такие как phpMyAdmin, которые также будут установлены в этом руководстве. phpMyAdmin — это удобный графический интерфейс, что означает, что вам не нужно возиться с командной строкой.
Этот учебник основан на Debian Etch (Debian 4.0). Вы должны уже настроить базовую систему 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, поэтому мы должны использовать PAM для аутентификации в базе данных MySQL. Поэтому мы устанавливаем libpam-mysql в дополнение к vsftpd, MySQL и phpMyAdmin:
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 yourrootsqlpassword3 Создание базы данных MySQL для vsftpd
Теперь мы создаем базу данных с именем vsftpd и пользователя MySQL с именем vsftpd, который демон vsftpd будет использовать позже для подключения к базе данных vsftpd:
mysql -u root -pCREATE 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/ (вы также можете использовать IP-адрес вместо server1.example.com) в браузере и войти как пользователь vsftpd. Затем вы можете взглянуть на базу данных. Позже вы можете использовать phpMyAdmin для администрирования вашего сервера vsftpd.
Get new posts in your inbox
No spam. Unsubscribe anytime.