Виртуальный хостинг с PureFTPd и MySQL на Ubuntu 10.10

Содержание материала

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

UbuntuЭта документация описывает, как установить PureFTPd сервере, который использует виртуальных пользователей из базы данных MySQL вместо реальных пользователей системы. Это гораздо более удобно, быстрее и позволяет иметь тысячи FTP пользователей на одной машине. В дополнение к этому, в этой установке я продемонстрирую использование квот и пределы полосы пропускания прием / отдача. Пароль будет хранится в зашифрованном виде строкой MD5 в базе данных.

Для администрации базы данных MySQL вы можете использовать веб-инструменты, такие как PhpMyAdmin, который также будет установлен в этом документе. PhpMyAdmin является удобным графическим интерфейсом, это означает, что Вам не придется возиться с командной строкой.

Этот учебник основан на Ubuntu 10.10. Вы уже должны были создать основу системы Ubuntu server 10.10, как описано в первых восьми главах материала: идеальный сервер ISPConfig 2 на Ubuntu server 10.10.

Этот материал предназначен в качестве практического руководства, она не охватывает теоретические основы. Так как они рассматриваются во многих других документах Интернета. Это не единственный способ создания такой системы. Есть много способов достижения этой цели, но это, как один из них.

Предварительные замечания

В данной статье я использую имя хоста ubuntu с IP-адреса 192.168.1.118. Эти параметры могут отличаться в Вашем случае, поэтому Вам придется заменить их в случае необходимости.

Убедитесь, что вы вошли в систему как суперпользователь (root):

  • sudo su

Данная команда используется для того что бы стать администратором так как, мы должны выполнить все шаги из этого учебника, как root пользователь.

Установка MySQL и PhpMyAdmin

Все это может быть установлено одной командой:

  • aptitude install mysql-server mysql-client phpmyadmin apache2

Вам будут предложено ответить на следующие вопросы:

Новый пароль для MySQL "root" пользователя: - root пароль на SQL
Повторите пароль для MySQL "корень" Пользователь: - root пароль на SQL
Веб-сервер для перенастройки автоматически: - apache2
Настройка базы данных для PhpMyAdmin с dbconfig-common? - нет

Установка PureFTPd с поддержкой MySQL

Для Ubuntu 10.10 имеется пакет уже предварительно настроенный pure-ftpd-mysql. Установить это так:

  • aptitude install pure-ftpd-mysql

Затем мы создаем FTP группы ( ftpgroup ) и пользователей ( ftpuser ), что бы все наши виртуальные пользователи будут сопоставлены. Заменить группы и идентификаторы с числом 2001, которое свободно в Вашей системе:

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

Создание базы данных MySQL для PureFTPd

Сейчас мы создадим базу данных под названием PureFTPd и пользователем MySQL с именем PureFTPd который будет использовать в дальнейшем демон PureFTPd для подключения к PureFTPd базы данных:

  • 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, мы создаем базу данных таблицы нужную нам (да, есть только одна таблица!):

  • 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;

Между прочем, (предпологая, что имя хоста Вашей системы / сервера FTP является ubuntu ) Вы можете получить доступ к PhpMyAdmin перейдя по ссылке в интернет обозревателе персонального компьютера по ссылке http://ubuntu/phpmyadmin/ (вы можете также использовать IP адрес вместо ubuntu ) в браузер и войдите в систему как пользователь PureFTPd . Тогда вы сможете посмотреть на базу данных http://IP/phpmyadmin/. Позже вы сможете использовать PhpMyAdmin для администрирования вашего PureFTPd сервера.

Настройка PureFTPd

Изменим /etc/pure-ftpd/db/mysql.conf:

  • cp /etc/pure-ftpd/db/mysql.conf /etc/pure-ftpd/db/mysql.conf_orig
  • cat /dev/null > /etc/pure-ftpd/db/mysql.conf
  • nano /etc/pure-ftpd/db/mysql.conf

Он должен выглядеть следующим образом:

MYSQLSocket      /var/run/mysqld/mysqld.sock
#MYSQLServer     localhost
#MYSQLPort       3306
MYSQLUser       pureftpd
MYSQLPassword   ftpdpass
MYSQLDatabase   pureftpd
#MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext
MYSQLCrypt      md5
MYSQLGetPW      SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetUID     SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetGID     SELECT Gid FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetDir     SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetQTASZ   SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetQTAFS   SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")

Убедитесь, что вы заменили строку ftpdpass с реальным паролем для пользователя MySQL PureFTPd в строке MYSQLPassword! Пожалуйста, обратите внимание, что мы используем метод md5 MYSQLCrypt, который означает, что мы будет хранить пользователей и пароли в базе данных как строки MD5, которая является гораздо более безопасным, чем при использовании обычного текстового пароля!

Затем создадим файл /etc/pure-ftpd/conf/ChrootEveryone который просто содержит строку yes:

  • echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone

Это позволит сделать PureFTPd изолированной для каждого виртуального пользователя в его домашнем каталоге, чтобы он нельзя было просматривать каталоги и файлы, находящиеся вне его каталога. Также создадим файл /etc/pure-ftpd/conf/CreateHomeDir что опять-таки просто содержит строку yes:

  • echo "yes" > /etc/pure-ftpd/conf/CreateHomeDir

Это позволит PureFTPdсоздавать домашний каталог пользователя при входе пользователя в систему даже если каталог еще не существует.

Наконец создаем файл /etc/pure-ftpd/conf/DontResolve что опять-таки просто содержит строки yes:

  • echo "yes" > /etc/pure-ftpd/conf/DontResolve

Это позволит PureFTPd не искать имена хостов, которые могут значительно ускорить процесс соединения и сократить использование пропускной способности.

После этого мы перезапустим :

  • /etc/init.d/pure-ftpd-mysql restart

Проверка MySQL

Для проверки перейдем в интернет обозревателе персонального компьютера по ссылке http://ubuntu/phpmyadmin/ (вы можете также использовать IP адрес вместо ubuntu ) в браузер и войдите в систему как пользователь PureFTPd . Тогда вы сможете посмотреть на базу данных http://IP/phpmyadmin/.

Проверка настроек MySQL для PureFTPd

Позже вы сможете использовать PhpMyAdmin для администрирования вашего PureFTPd сервера.

Проверка настроек MySQL для PureFTPd


Обмениваться, хранить, передавать Ваши файлы стало просто как никогда.
yandex-disk

Читать подробнее: для чего Yandex-Диск проекту Mini-Server. Практика установки, настройки и использования сетевого хранилища на Ubuntu server LTS 12.04 в статье Резервное копирование сервера Ubuntu на Яндекс Диск.

>> Ubuntu 12.04 + Nginx Скачать сервер
>> Fedora 15 Скачать сервер
>> Простой Debian 6.0.6 Скачать сервер
>> CentOS 6.0 и
+ (5.6) другой
Скачать сервер
>> OpenSUSE 11.4
MAX
Скачать сервер

Вход на сайт

ВНИМАНИЕ!

Регистрация на сайте только по согласованию с администратором ресурса. Обращаться через форму обратной связи.