Виртуальный хостинг · 5 min read · Nov 27, 2025
Виртуальный хостинг с PureFTPd и MySQL (включая управление квотами и пропускной способностью) на CentOS 6.5
Виртуальный хостинг с PureFTPd и MySQL (включая управление квотами и пропускной способностью) на CentOS 6.5
Версия 1.0
Автор: Фалко Тимме, обновлено Сриджаном Кишором
Следите за howtoforge в Twitter
Этот документ описывает, как установить сервер PureFTPd, который использует виртуальных пользователей из базы данных MySQL вместо реальных системных пользователей. Это гораздо более производительно и позволяет иметь тысячи ftp-пользователей на одной машине. В дополнение к этому я покажу использование квот и ограничений на загрузку/выгрузку с этой настройкой. Пароли будут храниться в зашифрованном виде в виде строк MD5 в базе данных.
Для администрирования базы данных MySQL вы можете использовать веб-инструменты, такие как phpMyAdmin, который также будет установлен в этом руководстве. phpMyAdmin — это удобный графический интерфейс, что означает, что вам не нужно возиться с командной строкой.
Этот учебник основан на CentOS 6.5. Вы должны уже настроить базовую систему CentOS 6.5, например, как описано в первых шести главах этого учебника: Идеальный сервер - CentOS 6.4 x86_64 (Apache2, Dovecot, ISPConfig 3)
Это руководство предназначено как практическое руководство; оно не охватывает теоретические основы. Они рассматриваются во многих других документах в сети.
Этот документ предоставляется без каких-либо гарантий! Я хочу сказать, что это не единственный способ настройки такой системы. Существует множество способов достижения этой цели, но это тот путь, который я выбираю. Я не даю никаких гарантий, что это сработает для вас!
1 Предварительная заметка
В этом учебнике я использую имя хоста server1.example.com с IP-адресом 192.168.0.100. Эти настройки могут отличаться для вас, поэтому вам нужно заменить их там, где это необходимо.
2 Установка MySQL и phpMyAdmin
Сначала мы включаем репозиторий EPEL на нашей системе CentOS, так как некоторые пакеты, которые мы собираемся установить в ходе этого учебника, недоступны в официальных репозиториях CentOS 6.5:
cd /tmp
rpm --import https://fedoraproject.org/static/0608B895.txt
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpmyum install yum-prioritiesОтредактируйте /etc/yum.repos.d/epel.repo…
vi /etc/yum.repos.d/epel.repo… и добавьте строку priority=10 в секцию [epel]:
| [epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] |
Теперь мы можем установить MySQL и phpMyAdmin следующим образом:
yum install mysql mysql-server phpMyAdmin httpdТеперь мы настраиваем phpMyAdmin. Мы изменяем конфигурацию Apache так, чтобы phpMyAdmin разрешал подключения не только с localhost (закомментировав все в разделе
так что файл выглядит следующим образом:
vi /etc/httpd/conf.d/phpMyAdmin.conf| # phpMyAdmin - Веб-браузер MySQL на основе php # # Разрешает только localhost по умолчанию # # Но разрешение phpMyAdmin любому, кроме localhost, следует считать # опасным, если не защищено должным образом с помощью SSL Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin |
Затем мы создаем системные ссылки для автозагрузки MySQL и Apache (чтобы оба запускались автоматически при загрузке системы) и запускаем оба сервиса:
chkconfig --levels 235 mysqld on
/etc/init.d/mysqld startchkconfig --levels 235 httpd on
/etc/init.d/httpd startСоздайте пароль для пользователя MySQL root (замените yourrootsqlpassword на желаемый пароль):
mysql_secure_installation[root@server1 ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
Вам нужно будет ввести текущий пароль для пользователя root, чтобы
обеспечить безопасность MySQL. Если вы только что установили MySQL, и
вы еще не установили пароль root, пароль будет пустым,
поэтому вам просто нужно нажать Enter здесь.
Введите текущий пароль для root (нажмите Enter для отсутствия): <– ENTER
OK, успешно использован пароль, продолжаем…
Установка пароля root гарантирует, что никто не сможет
войти в MySQL под пользователем root без соответствующей авторизации.
Установить пароль root? [Y/n] <– ENTER
Новый пароль: <– yourrootsqlpassword
Повторите новый пароль: <– yourrootsqlpassword
Пароль успешно обновлен!
Перезагрузка таблиц привилегий..
… Успех!
По умолчанию установка MySQL имеет анонимного пользователя,
разрешающего любому войти в MySQL без необходимости создания
учетной записи для них. Это предназначено только для
тестирования и для того, чтобы установка прошла немного
гладче. Вы должны удалить их перед переходом в
производственную среду.
Удалить анонимных пользователей? [Y/n] <– ENTER
… Успех!
Обычно root должен иметь возможность подключаться только
с ‘localhost’. Это гарантирует, что кто-то не сможет
угадать пароль root из сети.
Запретить удаленный вход root? [Y/n] <– ENTER
… Успех!
По умолчанию MySQL поставляется с базой данных
с именем ‘test’, к которой может получить доступ любой.
Это также предназначено только для тестирования и
должно быть удалено перед переходом в
производственную среду.
Удалить тестовую базу данных и доступ к ней? [Y/n] <– ENTER
- Удаление тестовой базы данных…
… Успех! - Удаление привилегий на тестовую базу данных…
… Успех!
Перезагрузка таблиц привилегий гарантирует, что все
изменения, сделанные до сих пор, вступят в силу
немедленно.
Перезагрузить таблицы привилегий сейчас? [Y/n] <– ENTER
… Успех!
Очистка…
Все готово! Если вы выполнили все
вышеуказанные шаги, ваша установка MySQL теперь
должна быть безопасной.
Спасибо за использование MySQL!
[root@server1 ~]#
3 Установка PureFTPd с поддержкой MySQL
Пакет PureFTPd для CentOS поддерживает различные бэкенды, такие как MySQL, PostgreSQL, LDAP и т.д. Поэтому все, что нам нужно сделать, это установить обычный пакет PureFTPd:
yum install pure-ftpdЗатем мы создаем группу ftp (ftpgroup) и пользователя (ftpuser), к которым будут сопоставлены все наши виртуальные пользователи. Замените идентификаторы группы и пользователя 2001 на номер, который свободен в вашей системе:
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuserGet new posts in your inbox
No spam. Unsubscribe anytime.