Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: [HOW-TO]: proftpd + mysql + web-интерфейс (proFTPd Administrator)  (Прочитано 3789 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн inhab

  • Автор темы
  • Участник
  • *
  • Сообщений: 106
    • Просмотр профиля
Люблю я всякие web-интерфейсы для управления различными сервисами. И захотелось мне управлять фтпешником из браузера. Ну там юзеров добавить/удалить, статистику посмотреть и т.п. Да и порой добавлять/удалять юзеров не входит в задачи, да и накладно это по времени. А вот другой сотрудник-коллега, будет это делать с важными видом :).
Беглый поиск решений вывел меня на связку proftpd + mysql + proFTPd Administrator. Да вот незадача последний релиз последнего зверька был в далеком 2006. Сколько уже мускулов поменялось, даже владельцы сменились. Да и сам proftpd подрос за это время. Завести удалось и по этому оставляю здесь подробное описание как я это сделал. Сервис подымался для потребностей локальной сети. В тексте присутствуют ссылки на мой githab, на который я залил proFTPd Administrator с подправленными конфигурационными файлами. При редактировании файлов я использовал редактор nano, вы можете использовать удобное для вас средство. Поехали.
1. Ставим свежую Ubuntu Server 64-bit. Во время установки из дополнительных пакетов выбираем только ssh-server.
2. Устанавливаем все необходимые пакеты:
# sudo apt-get install apache2 apache2-utils php5 php5-mysql mysql-server mysql-client proftpd proftpd-mod-mysqlНе забываем запомнить/записать пароль mysql. На вопрос как запускть proftpd, выбираем самостоятельно.
3. Настраиваем apache2, создав конфигурационный файл предварительно создав необходимые каталоги:
# cd /var/www/html/
# mkdir proftpdadmin
# cd /etc/apache2/sites-available/
# nano proftpdadmin.conf
Добавляем в открытый файл следующее:
(Нажмите, чтобы показать/скрыть)
Создаем необходимую ссылку и перегружаем apache2:
# ln -s /etc/apache2/sites-available/proftpdadmin.conf /etc/apache2/sites-enabled/proftpdadmin.conf
# service apache2 restart
4. На моей виртуальной машине возникли проблемы с нехваткой памяти при выполнение скриптов proFTPd Administrator. Для решения этой проблемы меняем в конфиге php:
# nano /etc/php5/apache2/php.iniэто memory_limit = 128M на это memory_limit = 512MНа всякий перегружаем apache2:
# service apache2 restart5. Развертывание proFTPd Administrator. Примеры конфигурационных файлов и скрипт создания бд нашего зверька немного устарели по этому я изменил их подстроив под новые реалии.
5.1. По этому качаем proFTPd Administrator с моего github (залил как смог) и распаковываем в нужную директорию и устанавливаем нужные права:
# cd /var/www/html/
# wget https://github.com/inhab-magnus/proftpdadmin/archive/master.zip
# unzip master.zip
# mv proftpdadmin-master/ proftpdadmin/
# cd proftpdadmin/
# chmod o+w configuration.xml
# chmod -R o+w logs
5.2. Создаем каталоги в которых будут находиться файлы пользователей:
# cd /
# mkdir ftp
# cd ftp
# mkdir incoming
# chmod o+w incoming
5.3. Заливаем скелет базы в mysql предварительно изменив последнее слово скрипта db_structure.sql, на свой (придумываем и запоминаем) пароль доступа к бд proFTPd Administrator:
# cd /var/www/html/proftpdadmin/misc/database_structure_mysql/
# nano db_structure.sql
(Нажмите, чтобы показать/скрыть)
Заливаем скелет
# mysql -u root -p < db_structure.sql6. Настройка proftpd. В конфигурационных файлах этого сервиса я не силен. Но была найдена необходимая комбинация при их изменениях. Если вы не хотите править конфигурационные файлы вручную просто скопируйте их в папку конфигурационных файлов proftpd, предварительно сделав копии оригинальных файлов. И тогда можете пропустить подпункты этого раздела.
# cd /etc/proftpd/
# mkdir bak
# mv proftpd.conf modules.conf sql.conf /etc/proftpd/bak/
# cd /var/www/html/proftpdadmin/misc/sample_config/
# cp proftpd.conf modules.conf sql.conf /etc/proftpd/
В файл sql.conf изменяем в параметре SQLConnectInfo последнее слово на пароль из п. 5.2.:
# nano /etc/proftpd/sql.confПерегружаем proftpd:
# service proftpd restartУ меня возникли проблемы со стартом сервиса, я её решил путем перезагрузки сервиса несколько раз, до тех пор пока он как бы задумается перед стартом. Проверить запущен ли сервис вы можете командой:
# ps aux | grep proftpdПри этом вы должны получить примерно такие две строчки:
proftpd    924  0.0  0.2 127152  4400 ?        Ss   19:04   0:00 proftpd: (accepting connections)
root      1406  0.0  0.1  12964  2148 pts/1    S+   19:24   0:00 grep --color=auto proftpd
6.1. Правим proftpd.conf:
# nano /etc/proftpd/proftpd.confДобавляем в файл proftpd.conf следующее:
(Нажмите, чтобы показать/скрыть)
6.2. Правим modules.conf:
nano /etc/proftpd/modules.confВ файле modules.conf раскомментируем строки:
LoadModule mod_sql.c
LoadModule mod_sql_mysql.c
6.3. Правим sql.conf:
nano /etc/proftpd/sql.confВ файл sql.conf добавляем следующее изменив в третей строчке последнее слово на пароль из п. 5.2.:
(Нажмите, чтобы показать/скрыть)
6.4. Перегружаем proftpd:
# service proftpd restartУ меня возникли проблемы со стартом сервиса, я её решил путем перезагрузкой сервиса несколько раз, до тех пор пока он как бы задумается перед стартом. Проверить запущен ли сервис вы можете командой:
ps aux | grep proftpdПри этом вы должны получить примерно такие две строчки:
proftpd    924  0.0  0.2 127152  4400 ?        Ss   19:04   0:00 proftpd: (accepting connections)
root      1406  0.0  0.1  12964  2148 pts/1    S+   19:24   0:00 grep --color=auto proftpd
7. Завершающий этап -- настройка proFTPd Administrator через web-интерфейс. Заходим по по адресу http://ваш_ip/proftpdadmin/. В web-интерфейсе переходим Configure-->Database и заполняем поля по листингу ниже:
Username: proftpd
Password: пароль из п. 5.2.
Hostname: localhost
Database: proftpd_admin
Жмем Submit. Если все правильно, исчезнет сообщение об ошибке.
Все, настройка завершена, вам осталось только завести пользователей и попробовать подключиться.
Например создаем пользователя user1. Заполняем поле Home directory так: Home directory: /ftp/user1. Создаем директорию с нужными правами:
# cd ftp
# mkdir user1
# chmod o+w user1
Пробуем подключиться.
С директориями и правами я еще не до конца разобрался. Буду дополнять статью.
Так же данный зверек не имеет парольной защиты. Рекомендую сделать доступ к web-интерфейсу по паролю. Мануалов в инете предостаточно. Будет время я добавлю этот нюанс в статью.
Используемые материалы:
Раз
Два
Три
Замечания, пожелания и предложения приветствуются.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28358
    • Просмотр профиля
Re: [HOW-TO]: proftpd + mysql + web-интерфейс (proFTPd Administrator)
« Ответ #1 : 27 Января 2016, 21:50:54 »
Выкинуть FTP - одним веб-интерфейсом меньше…
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн inhab

  • Автор темы
  • Участник
  • *
  • Сообщений: 106
    • Просмотр профиля
Re: [HOW-TO]: proftpd + mysql + web-интерфейс (proFTPd Administrator)
« Ответ #2 : 27 Января 2016, 22:46:45 »
Выкинуть FTP - одним веб-интерфейсом меньше…
Отчасти согласен. Я делал хауту в целях изучения/обучения.

Оффлайн polosaty

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: [HOW-TO]: proftpd + mysql + web-интерфейс (proFTPd Administrator)
« Ответ #3 : 19 Декабря 2017, 13:18:13 »
А можно ли как-то создавать домашние каталоги пользователей через web? У меня получается только через консоль, а потому уже назначать пользователю права на этой каталог.
« Последнее редактирование: 19 Декабря 2017, 13:20:04 от polosaty »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28358
    • Просмотр профиля
Re: [HOW-TO]: proftpd + mysql + web-интерфейс (proFTPd Administrator)
« Ответ #4 : 19 Декабря 2017, 23:31:20 »
pam_mkhomedir
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.07 секунд. Запросов: 25.