Настройка PureFTP c MySQL и UserManager.
Одной из любимых тем у системных администраторов – это интеграция всего всего, для авторизации через одну базу. База эта, чаще всего оказывается MySQL, в общем самое популярное решение. Сейчас мы настроим взаимодействие PureFTP с MySQL и сверху добавим, для удобства управления UserManager.
Все что нам надо устанавливается из портов FreeBSD.
В первую очередь установим MySQL сервер, нажодится он в /usr/ports/databases/mysql50-server/:
cd /usr/ports/databases/mysql50-server/ make WITH_CHARSET=cp1251 WITH_XCHARSET=all WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes install clean
Подробно на установке и настройке я останавливался в статье MySQL, установка, первичная настройка. Там я максимално подробно описал как установить MySQL сервер.
Остается только создать базу и пользователя в MySQL, база создается так:
#Подключимся к MySQL mysql -uroot -p #После ввода пароля появится командная строка MySQL, в ней наберем create database ftpusers; #Это мы создали базу и сделаем пользователя grant all on ftpusers.* to 'ftpusers'@'localhost' identified by 'ftpusers';
Переходим к установке PureFTP сервера:
cd /usr/ports/ftp/pure-ftpd/ make install clean
В появившемся диалоге настройки сборки, обязательно надо выбрать:
MYSQL Support for users in MySQL database
эта опция непосредственно и отвечает за поддержку MySQL. К слову, вызвать диалог настройки можно командой:
make configТеперь установим UserManager:
cd /usr/ports/www/usermanager/ make install clean
Для работы UserManager требует установленного и настроеного Apache с mod_php, установка Apache я описывал в Установка php 5 под Apache 1.3, я попросту скопировал установку UserManager из /usr/local/www/data/, в свой виртуалхост www.hilik.org.ua, дальнейшая установка осуществляется из веббраузера.
Простейший вируталхост выглядит так:
<VirtualHost *:80> DocumentRoot /home/www/hilik.org.ua ServerName hilik.org.ua ServerAlias www.hilik.org.ua <Directory /home/www/hilik.org.ua> Options FollowSymLinks AllowOverride all </Directory> </VirtualHost>
Теперь будем настраивать UserManager через веббраузер.
Первый шаг выглядит так:

Инсталлятор проверяет настройки PHP(доступность расширений PHP), доступность на запись конфигурационных файлов.
Второй этап – инсталятор, просит указать, что именно вы хотите сделать, установить или обновить существующую инсталяцию.

Мы выбираем новую инсталяцию и переходим к этапу установки параметров для подключения к базе. То есть необходимо указать имя пользователя, пароль, а так же имя базы в которую будет установленны таблици. Тут возник нюансик, я попытался указать свою базу, а не ту что, предлагалась по умолчанию инсталятором, и инсталятор не смог проверить наличие таблиц в ней. Пришлось довольствоваться ftpusers. Как сделать пользователя для MySQL, можно прочитать у меня в статье Grantы в mysql

На этом же этапе создаются таблицы.
Следующий этап, опять ввод настроек подключения к MySQL, и плюс к этому необходимо ввести адрес с портом вашего ftp сервера. У меня это выглядит как hilik.org.ua:21

Переходим к следующему этапу.
На нем вы уже можете установить пароль для администратора, и добавить новых пользователей, любые изменения подтверждаются нажатием на кнопку «Change», кстати логин Administrator нельзя изменить и удалить.

Следующий этап не требует ввода никаких настроек, на этом этапе, самое главное приводится готовый файл настроек для работы с MySQL. На скриншоте приведено только сообщение, сам файл настроек, я размещу ниже.

Файл настроек /usr/local/etc/pureftpd-mysql.conf:
#Адрес, где находится MySQL сервер MYSQLServer 127.0.0.1 MYSQLSocket /tmp/mysql.sock #Логин и пароль для подключения к MySQL MYSQLUser xxxxxxx MYSQLPassword xxxxxxx #База MySQL MYSQLDatabase ftpusers #Пароли в базе зашифрованны MYSQLCrypt md5 #Запросы авторизации, получения домашней директории, id пользователя MYSQLGetPW SELECT Password FROM users WHERE User="\L" MYSQLGetUID SELECT Uid FROM users WHERE User="\L" MYSQLGetGID SELECT Gid FROM users WHERE User="\L" MYSQLGetDir SELECT Dir FROM users WHERE User="\L"
Файл можно создать и сохранить либо с моего поста, либо прямо из инсталлятора.
Последний этап – вам просто сообщают, что все отлично и установка завершена.

Теперь можно перейти к настройке непосредственно PureFTP. Файл настроек достаточно простой и мало отличается от того, что мы создали в Настройка PureFTP, фактически мы добавили подключение MySQL и убрали все остальные методы авторизации.
ChrootEveryone no BrokenClientsCompatibility no MaxClientsNumber 50 Daemonize yes MaxClientsPerIP 8 VerboseLog yes DisplayDotFiles yes AnonymousOnly no NoAnonymous yes SyslogFacility ftp DontResolve yes MaxIdleTime 15 #Подключаем поддержку базы MySQL MySQLConfigFile /usr/local/etc/pureftpd-mysql.conf LimitRecursion 2000 8 AnonymousCanCreateDirs no MaxLoad 4 PassivePortRange 30000 50000 AntiWarez yes Bind 89.252.34.107,21 Umask 177:077 MinUID 100 AllowUserFXP no AllowAnonymousFXP no ProhibitDotFilesWrite no ProhibitDotFilesRead no AutoRename no AnonymousCantUpload no AltLog clf:/var/log/pureftpd.log #NoChmod yes #CreateHomeDir yes MaxDiskUsage 99 CustomerProof yes IPV4Only yes
Осталось только запустить PureFTP.
Установим разрешение на запуск:
echo pureftpd_enable="YES" >>/etc/rc.conf
И запустим:
/usr/local/etc/rc.d/pure-ftpd start
На этом настройка закончена. Управление пользователями FTP осуществляется через вебинтерфейс.



