Net2ftp – працюємо з ФТП через браузер

Є кілька працюючих FTP-серверів. Ну а оскільки протокол тішить тим, що використовуються стандартні команди, то спалахнув ідеєю прикрутити до FTP-серверів веб-інтерфейс. Погуглів знайшов кілька скриптів (до речі в портах є ще й phpwebftp, але він виявився дуже кострубатим у роботі). Випробувавши кілька версій, знайшов інформацію про net2ftp, тим паче цей софт опинився в портах. Pkg-descr теж порадував. Ну а коли пошукав ще інформації, то просто потішило:

Можливості для користувачів:

Можливості для адміністраторів:

  • Safe Mode - net2ftp чудово працює при SafeMode;
  • MySQL DB - необхідна для ведення логів, добового обмеження; опцію можна включити у конфігураційному файлі;
  • Авторизація - можливість підключатися користувачам до різних ftp-серверів;
  • Введення лог-файлів - доступні 3 різних типи логів: за запитуваними сторінками, помилками, логінами;
  • Денний ліміт – обмеження денного обсягу передачі даних та час виконання скриптів для кожного користувача. Як тільки користувач перевищує межу – передача даних до сервера заблокується;
  • Ліміт великих файлів - файли, які більше ніж цей ліміт не можуть бути завантажені/завантажені, залишається можливість - перейменовувати/видаляти/змінювати права;
  • Заборонені імена - файли (каталоги), що містять ці імена - не обробляються;
  • Інтеграція з іншими програмами PHP — доступні модулі для Mambo, Drupal and Xoops.

Вирішено. "Помацаємо" що це таке. Приступаємо до встановлення:

#cd /usr/ports/ftp/net2ftp/ && make install clean && rehash

Додаємо до httpd.conf наступний блок:

Alias ​​/ftp/ "/usr/local/www/net2ftp/" Options none AllowOverride All Order Allow,Deny Allow from all

Перевіряємо, чи не припустилися помилок при редагуванні httpd.conf, і якщо все гаразд, то "м'яко" перезапускаємо apache:

# apachectl configtest Syntax OK# apachectl graceful

Далі створюємо БД MySQL, користувача MySQL і даємо йому повні права на цю БД.

# mysql –u username –p Enter password: mysql>create database net2ftp; Query OK, 1 рядок (0.00 sec) mysql>grant all on net2ftp.* to 'net2ftp'@'localhost' >password '; Query OK, 0 рядки (0.00 sec) mysql>quit

Заливаємо дані у БД:

# mysql -u net2ftp -p net2ftp ftp [at] muff [dot] kiev [dot] ua ";

// Використання MySQL є опціональним. Ви можете використовувати цю опцію // для логування користувачів, перевірки використання мережі та ресурсів // сервера (обсяг переданих даних та час виконання скриптів), а також // перевірки домашнього каталогу користувача

Далі за допомогою .htaccess змінимо деякі глобальні змінні php.ini для нашого каталогу:

#cd /usr/local/www/net2ftp/ && mv htaccess.txt .htaccess

Я встановив такі значення:

# cat /usr/local/www/net2ftp/.htaccess php_value max_execution_time 1200 php_value memory_limit 200M php_value post_max_size 200M

Ось і все, налаштування завершено. Залишився тільки завершальний штрих: