Ставим из портов:
exim# cd /usr/ports/ftp/net2ftp/ && make install clean && rehash
Конфигурим виртуальный хост:
exim#ee /usr/local/etc/apache22/extra/httpd-vhosts.conf
Добавляем:
<VirtualHost *:8020>
ServerAdmin
Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
//
DocumentRoot «/usr/local/www/net2ftp/»
ServerName net2ftp.mic.ru
ErrorLog «/var/log/net2ftp-error_log»
CustomLog «/var/log/net2ftp-access_log» common
<Directory «/usr/local/www/net2ftp/»>
AllowOverride None
Options None
Order Allow,deny
Allow from all
</Directory>
</VirtualHost>
Проверяем правильность настройки виртуальных хостов.
exim# apachectl -S
Должны увидеть
VirtualHost configuration:
10.10.10.203:8021 manager.xyz.ru (/usr/local/etc/apache22/extra/httpd-vhosts.conf:90)
10.10.10.203:8025 vexim.xyz.ru (/usr/local/etc/apache22/extra/httpd-vhosts.conf:107)
10.10.10.203:8070 exilog.xyz.ru (/usr/local/etc/apache22/extra/httpd-vhosts.conf:121)
10.10.10.203:8050 joomla.xyz.ru (/usr/local/etc/apache22/extra/httpd-vhosts.conf:137)
wildcard NameVirtualHosts and _default_ servers:
*:8080 roundcube.xyz.ru (/usr/local/etc/apache22/extra/httpd-vhosts.conf:59)
*:8020 net2ftp.xyz.ru (/usr/local/etc/apache22/extra/httpd-vhosts.conf:74)
*:80 is a NameVirtualHost
default server shop1.xyz.ru (/usr/local/etc/apache22/extra/httpd-vhosts.conf:27)
port 80 namevhost shop1.xyz.ru (/usr/local/etc/apache22/extra/httpd-vhosts.conf:27)
port 80 namevhost cto.xyz.ru (/usr/local/etc/apache22/extra/httpd-vhosts.conf:42)
Syntax OK
Проверяем включение возможности работы с виртуальными хостами:
exim# ee /usr/local/etc/apache22/httpd.conf
Должна быть раскоментирована строка:
# Virtual hosts
Include etc/apache22/extra/httpd-vhosts.conf
А заодно проверяем разрешена ли работа по порту 8020.
Правим файл php.ini:
exim# ee /usr/local/etc/php.ini
Ставим свои значения.
У меня следующие:
max_execution_time = 30 ; Maximum execution time of each script, in seconds
memory_limit = 128M ; Maximum amount of memory a script may consume (128MB)
; Maximum size of POST data that PHP will accept.
post_max_size = 15M
; Maximum allowed size for uploaded files.
upload_max_filesize = 10M
; Whether to allow HTTP file uploads.
file_uploads = On
Рестартим apache:
exim# apachectl graceful
Далее создаем БД MySQL, пользователя MySQL, и даем ему полные права на эту БД.
exim# mysql –u username –p
Enter password:
mysql> create database net2ftp;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on net2ftp.* to ‘net2ftp’@’localhost’ identified by ‘password’;
Query OK, 0 rows affected (0.00 sec)
mysql>quit
Заливаем данные в БД:
# mysql -u net2ftp -p net2ftp < /usr/local/www/net2ftp/create_tables.sql
Enter password:
Далее правим конфигурационный файл /usr/local/www/net2ftp/settings.inc.php. Вот что у меня получилось:
<?php
// Базовые настройки
// e-mail адресс. Будет использоваться в поле «From» при отправке
// сообщений с аттачментом. Почтовый ящик должен существовать.
$net2ftp_settings[«email_feedback»] =
Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
//
// Язык и скин по умолчанию
$net2ftp_settings[«default_language»] = «ru»;
$net2ftp_settings[«default_skin»] = «blue»;
// Введите адрес справки, форума поддержки или системы тикетов. Будет создан линк
// в футере. Оставьте незаполненым, если не хотите использовать.
$net2ftp_settings[«help_text»] = «»;
$net2ftp_settings[«help_link»] = «»;
// Настройка извещения об ошибках PHP
$net2ftp_settings[«error_reporting»] = «standard»;
// Исправление ошибки отображения прозрачности изображений PNG в IE
$net2ftp_settings[«fix_png»] = «yes»;
// Измените алгоритм MD5 хеширования для повышения безопасности
$net2ftp_settings[«encryption_string»] = «462E16CB7C3F369BD9F4DBEE0A926F8F14FFB3»;
// Логин и пароль администратора для панели управления.
// Если пароль не задан, панель управления будет недоступна
$net2ftp_settings[«admin_username»] = «admin»;
$net2ftp_settings[«admin_password»] = «123456»;
// Сообщение для пользователей. Будет отображаться над опциональными клавишами
// при входе
$net2ftp_settings[«message_browse»] = «What do you want?»;
// Использование MySQL является опциональным. Вы можете использовать эту опцию
// для логирования пользователей, проверки использования сети и ресурсов
// сервера (обьем переданных данных и время исполнения скриптов), а также
// проверки домашнего каталога пользователя
// Использовать MySQL или нет
$net2ftp_settings[«use_database»] = «yes»; // «yes» or «no»
// Параметры соединения с MySQL
$net2ftp_settings[«dbusername»] = «net2ftp»;
$net2ftp_settings[«dbpassword»] = «password»;
$net2ftp_settings[«dbname»] = «net2ftp»;
$net2ftp_settings[«dbserver»] = «localhost»;
// Включение логгирования
$net2ftp_settings[«log_access»] = «yes»;
$net2ftp_settings[«log_error»] = «yes»;
// Автоматическое удаление логов «старше» этого значения
$net2ftp_settings[«log_length_days»] = 31; // number of days
// Вести логирование в syslog
$net2ftp_settings[«use_syslog»] = «no»;
$net2ftp_settings[«syslog_priority»] = LOG_NOTICE;
$net2ftp_settings[«syslog_facility»] = LOG_MAIL;
$net2ftp_settings[«syslog_ident»] = «net2ftp»;
// Файлы, больше установленого лимита будут исключены из операций:
// закачки, выкачки, копирования, перемещения, поиска, просмотра, правки
$net2ftp_settings[«max_filesize»] = «10000000»; // in Bytes, 10 МB
// ПРИМЕЧАНИЕ: Если Вы хотите разрешить загрузку больших файлов, необходимо
// изменить следующие параметры:
// 1 — в файле php.ini: upload_max_filesize, post_max_size,
// max_execution_time, memory_limit
// 2 — в файле php.conf: LimitRequestBody
// Настройка потребления ресурсов (если включаете, то настройте секцию MySQL
// Задействовать или нет ограничения по потреблению ресурсов
$net2ftp_settings[«check_consumption»] = «yes»;
// Максимальный обьем переданных даных в день
$net2ftp_settings[«max_consumption_ipaddress_datatransfer»] = 50000000; // для IP адреса (50 МБ)
$net2ftp_settings[«max_consumption_ftpserver_datatransfer»] = 50000000; // для FTP-сервера (50 ГБ)
// Максимальное время выполнения скрипта в день (в секундах)
$net2ftp_settings[«max_consumption_ipaddress_executiontime»] = 1800; // для IP адреса (30 мин)
$net2ftp_settings[«max_consumption_ftpserver_executiontime»] = 10800; // для FTP-сервера (3 часа)
// Максимальное количество доступных FTP-серверов за день
$net2ftp_settings[«max_consumption_ipaddress_nr_of_ftpservers»] = 1;
// Проверять домашний каталог пользователя?
$net2ftp_settings[«check_homedirectory»] = «yes»;
// НЕ ИЗМЕНЯЙТЕ СЛЕДУЮЩИЕ ОПЦИИ
$net2ftp_settings[«application_version»] = «0.98»;
$net2ftp_settings[«application_build_nr»] = «45»;
// Is this net2ftp.com, or a net2ftp installation elsewhere
$net2ftp_settings[«net2ftpdotcom»] = «no»;
// Google Adsense advertisements
// Not shown when using HTTPS to avoid warnings on each pageload
$net2ftp_settings[«show_google_ads»] = «no»;
?>
Настраиваем файл авторизации settings_authorizations.inc.php:
<?php
// Проверять авторизацию?
$net2ftp_settings[«check_authorization»] = «yes»;
// Разрешенные FTP-сервера
// Введите ALL для разрешения всех серверов
// Будет автоматически изменено приглашение:
// — если установлена опция ALL, будет доступно поле для ввода текста
// — если указан только один сервер, поле ввода отображаться не будет
// — если указано несколько разрешенных серверов, будет доступен
// выпадающий список
$net2ftp_settings[«allowed_ftpservers»][1] = «localhost»;
// Пример из нескольких серверов:
//$net2ftp_settings[«allowed_ftpservers»][1] = «myhost.ru»;
//$net2ftp_settings[«allowed_ftpservers»][2] = «192.168.0.234»;
// Список заблокированных серверов. Имеет смысл использовать, в случае, если
// опция разрешенных серверов выставлена в «ALL»
$net2ftp_settings[«banned_ftpservers»][1] = «NONE»;
// Разрешенные для FTP порты
$net2ftp_settings[«allowed_ftpserverport»] = «21»;
// Разрешенные IP-адресса или блок IP-адресов
$net2ftp_settings[«allowed_addresses»][1] = «ALL»;
// Список IP-адресов, которым запрещен доступ
$net2ftp_settings[«banned_addresses»][1] = «NONE»;
//$net2ftp_settings[«banned_addresses»][1] = «127.0.0.1»;
//$net2ftp_settings[«banned_addresses»][2] = «192.168.1.2»;
//$net2ftp_settings[«banned_addresses»][3] = «192.168.1.3»;
// Перечень имен для файлов и каталогов, использование которых запрещено.
// Пользователю будет выдано сообщение об ошибке
//$net2ftp_settings[«banned_keywords»][1] = «NONE»;
$net2ftp_settings[«banned_keywords»][1] = «paypal»;
$net2ftp_settings[«banned_keywords»][2] = «ebay»;
$net2ftp_settings[«banned_keywords»][3] = «wachoviabank»;
$net2ftp_settings[«banned_keywords»][4] = «wellsfargo»;
$net2ftp_settings[«banned_keywords»][5] = «bankwest»;
$net2ftp_settings[«banned_keywords»][6] = «hsbc»;
$net2ftp_settings[«banned_keywords»][7] = «halifax-online»;
$net2ftp_settings[«banned_keywords»][8] = «lloydstsb»;
$net2ftp_settings[«banned_keywords»][9] = «egg.com»;
?>
Осталось дать права на папку:
exim# chown -R www:www /usr/local/www/net2ftp/
ПРИМЕЧАНИЕ: Чтобы разрешить или запретить определенные функции, выставьте значение «yes» или «no» в файле settings_screens.inc.php
Свой конфиг прилагаю:
<?php
// Create new directory
$net2ftp_settings[«functionuse_newdir»] = «no»;
// Create new file
$net2ftp_settings[«functionuse_newfile»] = «no»;
// Upload (upload, upload-and-unzip)
$net2ftp_settings[«functionuse_upload»] = «yes»;
// Java upload
$net2ftp_settings[«functionuse_jupload»] = «no»;
// Flash upload
$net2ftp_settings[«functionuse_swfupload»] = «no»;
// Create a website from pre-made HTML templates
$net2ftp_settings[«functionuse_easyWebsite»] = «no»;
// Bookmark a page
$net2ftp_settings[«functionuse_bookmark»] = «yes»;
// Install functions
$net2ftp_settings[«functionuse_install»] = «no»;
// Advanced functions
$net2ftp_settings[«functionuse_advanced»] = «yes»;
// ———————————————————————————-
// Functions on the Browse screen — TOP RIGHT
// Indicate which functions are enabled or disabled
// ———————————————————————————-
// Copy, move and delete directories and files
$net2ftp_settings[«functionuse_copy»] = «no»;
$net2ftp_settings[«functionuse_move»] = «no»;
$net2ftp_settings[«functionuse_delete»] = «no»;
// Rename
$net2ftp_settings[«functionuse_rename»] = «no»;
// Chmod
$net2ftp_settings[«functionuse_chmod»] = «no»;
// Zip-and-download
$net2ftp_settings[«functionuse_downloadzip»] = «no»;
// Unzip
$net2ftp_settings[«functionuse_unzip»] = «no»;
// Zip-and-save, zip-and-email
$net2ftp_settings[«functionuse_zip»] = «no»;
// Calculate size
$net2ftp_settings[«functionuse_calculatesize»] = «yes»;
// Find string
$net2ftp_settings[«functionuse_findstring»] = «yes»;
// ———————————————————————————-
// Functions on the Browse screen — ROW LEVEL
// Indicate which functions are enabled or disabled
// ———————————————————————————-
// Download file
$net2ftp_settings[«functionuse_downloadfile»] = «yes»;
// View file
$net2ftp_settings[«functionuse_view»] = «no»;
// Edit file
$net2ftp_settings[«functionuse_edit»] = «no»;
// Update file (beta function)
$net2ftp_settings[«functionuse_update»] = «no»;
// Open file
$net2ftp_settings[«functionuse_open»] = «no»;
?>
И вот, что получилось