Страница 1 из 1

ProFTPd+MySQL+QUOTA

Добавлено: 2008-12-26 22:02:45
Sun
Нужна ли такая статья профтд с поддержкой виртуальных пользователей и квот для них в бд?

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2008-12-26 22:45:17
Alex Keda
да

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2008-12-27 0:42:55
Sun
ок,тогда писать приступаю к написанию, выложу здесь на форуме ! :smile:

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2008-12-27 6:42:52
zar0ku1
Sun писал(а):ок,тогда писать приступаю к написанию, выложу здесь на форуме ! :smile:
А принципиально что proftpd, под vsftpd пойдеть?

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2008-12-27 16:34:52
sun гость
Сорри вопроса не понял?

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2008-12-27 17:01:22
risk94
мну тожа интересно! Кстати, кто как реализовывает персональную нарезку ширины канала для proftpd - Группы??

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2008-12-28 4:44:53
zar0ku1
sun гость писал(а):Сорри вопроса не понял?
я имел ввиду принципиально использовать данный ФТП сервер, или тоже самое можно реализовать и сдругими?

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2008-12-28 13:22:56
sun Гость
чесно не знаю,раньше пользовалсятолько стандаотным фтп фри,поставил профтп понравилось :roll:

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2008-12-28 13:24:17
zar0ku1
sun Гость писал(а):чесно не знаю,раньше пользовалсятолько стандаотным фтп фри,поставил профтп понравилось :roll:
вообщем пиши статью =) я сам разберусь как прикрутить к другим фтп серверам

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2009-01-04 19:31:03
Sun
Короче статья готова,скоро выложу на суд! :Yahoo!:

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2009-01-04 19:33:31
Sun
Вот оно мое творение! :)

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2009-01-04 19:39:59
Alex Keda
ты бы прям тут выложил...
не аттачем

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2009-01-04 19:44:54
Sun
http://www.proftpd.org
http://www.lissyara.su/?id=1144
http://www.mysql.ru/docs/spichekov/
http://linux.yaroslavl.ru/docs/serv/ProFTPD.html

ProFTPd+MySQL-5.0+Quota
«ProFTPD вырос из желания иметь безопасный и настраиваемый FTP-сервер» - собственно все сказано и приступаем к реализации мечты.
Первым делом обновим порты, я обновляюсь через cvsup . Ставить ProFTPd мы будем с поддержкой БД MySQL и mod_quota, в ней будут храниться виртуальные пользователи и квоты для них плюс статистика. Ставлю это все под :

Код: Выделить всё

#uname -a
FreeBSD 127.0.0.1 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008     root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386
У меня на машине уже стоят Apache22+PHP-5.2.8+MySQL-5.0+phpmyadmin-3.1.1 по этому на это в статья внимание уделяться не будеь.

Код: Выделить всё

[127][root][/]#cd /usr/ports/ftp/proftpd-mysql/
[127][root][/usr/ports/ftp/proftpd-mysql]# make config

Код: Выделить всё

[X] IFSESSION      Include mod_ifsession
[X] MYSQL            MySQL auth (Can be combined with PGSQL)
[X] NLS                  Use nls (builds mod_lang)
[X] QUOTA            Include mod_quota
[X] RADIUS           Include mod_radius
[X] RATIO             Include mod_ratio
[X] README         Include mod_readme
[X] REWRITE        Include mod_rewrite
[X] WRAP               Include mod_wrap2

Код: Выделить всё

[127][root][/usr/ports/ftp/proftpd-mysql]# make install
[127][root][/usr/ports/ftp/proftpd-mysql]# rehash
Далее создаем файл proftpd.conf

Код: Выделить всё

[127][root][/usr/ports/ftp/proftpd-mysql]# rm /usr/local/etc/proftpd.conf
[127][root][/usr/ports/ftp/proftpd-mysql]# touch  /usr/local/etc/proftpd.conf
[127][root][/usr/ports/ftp/proftpd-mysql]# ee  /usr/local/etc/proftpd.conf
[proftpd.conf]

Код: Выделить всё

# Конфиг proftpd - 2009-01-4

# имя сервера - показывается коннектящимся клиентам
ServerName              "Private FTP server."

# тип сервера (даже не тип самого сервера, а тип его запуска,
# standalone/inetd - сам или через inetd)
ServerType              standalone

# смысл следующей директивы такой: если клиент коннектится не на имя
# а на IP или на виртуальный хост, не описанный в конфиге, то при
# установке в `off` он получит отлуп, если же установлено `on` то
# он будет обслужен `сервером по-умолчанию`
DefaultServer           on

# e-mail администратора (по идее для каждого ВиртуалХоста его можно
# поставить разный - но я делаю один сервер без извращений с
# виртуальными хостами)
ServerAdmin             q1230@rambler.ru

# файло где хранится инфа о сессиях
#ScoreboardFile         /var/run/proftpd.scoreboard

# Поддержка кодировки cp1251
LangEngine on
UseEncoding KOI8-R CP1251

# порт на котором работает сервер
Port                    21

# Маска с которой создаются новые файлы (не совсем маска - маска получается
# из этого значения, путём его вычитания из 777 - т.е. в даном случае получится
# маска 755)
Umask                   022

# никаких действий после входа в течении 600 сек выход
TimeoutIdle 		 600

# отводится на авторизацию 300 сек иначе разрыв
TimeoutLogin 		 300
# вошел, но не начал передачу в течении 300 сек выход
TimeoutNoTransfer	 300

# размер-очереди
tcpBackLog 		 5

# Максимальное количество клиентов
MaxClients              10 "Sorry, the maximum number of allowed users are already connected (%m)"

# Максимальное количество клиентов с одного хоста
MaxClientsPerHost       2  "Sorry, you may not connect more than one time. %m allowed users already connected"

# допускаемое число попыток ввести пароль
MaxLoginAttempts        3

# Максимальное число `детей` (работает только в standalohe режиме)
# необходимо для защиты от атак типа `отказ в обслуживании` да и
# от перегрузки сервера поможет :)
MaxInstances            30

# Юзер от которого работает сервер
User                    proftp

# группа, под которой работает сервер
Group                   proftp

# Тип авторизации (на самом деле - в каком виде хрянятся
# пароли в БД - в данном случае - открытым текстом)
SQLAuthTypes            Plaintext

# Кого и как аутентифицируем - on - всех и вся :)
# Но - если поставить `on` то он ломится в БД за группами.
# мне группы никчему. Посему поставил `users`
SQLAuthenticate         users

# инфа для соединения с MySQL сервером:
# имя_базы_данных@хост_где_MySQL:порт имя_пользователя пароль
SQLConnectInfo          proftpd@localhost:3306 proftpd pwd

# в каком порядке вернёт поля запрос - первое поле, это
# имя таблицы, где лежат пользователи
SQLUserInfo             `users_table` `username` `password` `uid` `gid` \
                        `homedir` `shell`

# должен ли быть у юзера (для того, чтобы он мог коннектится),
# `реальный` shell описанный в /etc/shells
RequireValidShell off

# лог файл работы с SQL
SQLLogFile      /var/log/proftpd/proftpd.log

# Записываем удачные логины в БД. Общий смысл такой - создаём
# именованую кверю, с указанием что мы должны сохранять
SQLLog          PASS            counter_login

SQLNamedQuery   counter_login   UPDATE "`last_login`=UNIX_TIMESTAMP(), \
                                `login_count`=`login_count`+1 WHERE \
                                `username`='%u'" `users_table`

# пишем неудачные логины в БД
SQLLog          ERR_PASS        counter_err
SQLNamedQuery   counter_err     UPDATE "`last_err_login`=UNIX_TIMESTAMP(), \
                                `err_login_count`=`err_login_count`+1 WHERE \
                                `username`='%U'" `users_table`

# логируем что сохраняет и тащщит с сервера:
# переменные
# %u - имя пользователя (с которым залогинился)
# %f - полный путь и имя файла который был скачан
# %b - число байт, которые были скачаны
# %h - имя клиента (из DNS), если не удалось разрешить - IP
# %a - IP-адрес клиента
# %m - имя команды полученной от клиента (RETR/STOR)
# %T - время (секунд) ушедшее на передачу файла клиенту
SQLLog          RETR,STOR               log_story_transfer

SQLNamedQuery   log_story_transfer      INSERT "'',\
                                        UNIX_TIMESTAMP(),'%u',\
                                        '%f', '%b', '%h', \
                                        '%a', '%m', '%T'" \
                                         `xfer_table`

# записываем ошибки при сохранении и чтении файлов
SQLLOG          ERR_RETR,ERR_STOR,ERR_DELE,ERR_RMD,ERR_RNTO\
                                        log_err_modify

SQLNamedQuery   log_err_modify          INSERT "'',\
                                        UNIX_TIMESTAMP(),\
                                        '%u', '%f', '%h', \
                                        '%a', '%m'" `xfer_errors`

UseReverseDNS     off
IdentLookups      off

# себе я разрешил шариться по всему серверу
# а остальных за`chroot`ил. Если, например, надо чтобы пользователи
# могли по серверу шариться а анонимоусы нет, то надо указать !users
# также можно указать определённую группу.
DefaultRoot             ~       !ad

# Директории
<Directory ~>
AllowOverwrite          on
<Limit Write>
AllowAll
</Limit>
<Limit READ>
AllowAll
</Limit>
</Directory>

<Anonymous /ds/ftp/guest>
# пользователь от которого анонимоусы шарятся
User            proftp
# группа анонимоусов
Group           proftp
# альясы ананонимоусов (можно будет входить как ftp, а
# не anonymous)
UserAlias       anonymous proftp
# максимально число анонимоусов
MaxClients      10      "Sorry, max %m users - try again later"
# Разрешаем анонимам лить на сервер файлы
#<Limit WRITE>
#DenyAll
#</Limit>
</Anonymous>

QuotaEngine on                # включить квоту

QuotaDirectoryTally on     # директива настраивает mod_quotatab принять каталоге операций (например, создание каталогов, удаление каталога)
                                      # во внимание при подсчете

QuotaDisplayUnits Mb            # Отображения информации квоты в мегабайтах

QuotaShowQuotas on            # директиву можно использовать для включения / выключения mod_quotatab
SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, 
    bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, 
    files_xfer_avail FROM quotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, 
    bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM quotatallies 
    WHERE name = '%{0}' AND quota_type = '%{1}'"
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, 
    bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, 
    files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, 
    files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" quotatallies
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" quotatallies
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally


QuotaLog                        /var/log/proftpd/quota.log
После того как отредактировали proftpd.conf создаем пользователя от которого будет работать FTP-Server.

Код: Выделить всё

[127][root][/usr/ports/ftp/proftpd-mysql]# adduser proftp
Плюс немного подправил /etc/passwd

Код: Выделить всё

proftp:*:1002:1002:ProFTPd server:/nonexistent:/sbin/nologin
Далее создаем файлы логов:

Код: Выделить всё

[127][root][/usr/ports/ftp/proftpd-mysql]# mkdir /var/log/proftpd
[127][root][/usr/ports/ftp/proftpd-mysql]# touch /var/log/proftpd/proftpd.log
[127][root][/usr/ports/ftp/proftpd-mysql]# chown proftp:wheel /var/log/proftpd/proftpd.log
[127][root][/usr/ports/ftp/proftpd-mysql]# touch /var/log/proftpd/quota.log
[127][root][/usr/ports/ftp/proftpd-mysql]# chown proftp:wheel /var/log/proftpd/quota.log
Далее добавим их в /etc/newsyslog.conf

Код: Выделить всё

/var/log/proftpd/quota.log      proftpd:wheel   600  2     200  *     JC
/var/log/proftpd/proftpd.log    proftpd:wheel   600  1     500  *     JC
Теперь создаем катологи FTP сервера:

Код: Выделить всё

[127][root][/usr/ports/ftp/proftpd-mysql]# mkdir /ds/ftp
[127][root][/usr/ports/ftp/proftpd-mysql]# mkdir /ds/ftp/user
[127][root][/usr/ports/ftp/proftpd-mysql]# mkdir /ds/ftp/user/ad
[127][root][/usr/ports/ftp/proftpd-mysql]# mkdir /ds/ftp/guest
[127][root][/usr/ports/ftp/proftpd-mysql]# chown proftp:wheel /ds/ftp
[127][root][/usr/ports/ftp/proftpd-mysql]# chown proftp:wheel /ds/ftp/*
[127][root][/usr/ports/ftp/proftpd-mysql]# chmod 777 /ds/ftp
[127][root][/usr/ports/ftp/proftpd-mysql]# chmod 777 /ds/ftp/*
[127][root][/usr/ports/ftp/proftpd-mysql]# chown proftp:wheel /ds/ftp/user/*
[127][root][/usr/ports/ftp/proftpd-mysql]# chmod 777 /ds/ftp/user/*
Теперь создаем в MySQL бд proftpd c пользователем proftpd и заливаем туда дамп бд:

Код: Выделить всё

-- phpMyAdmin SQL Dump
-- version 3.1.1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Янв 04 2009 г., 21:46
-- Версия сервера: 5.0.75
-- Версия PHP: 5.2.8
--
-- База данных: `proftpd`
--
-- --------------------------------------------------------
--
-- Структура таблицы `quotalimits`
--
CREATE TABLE IF NOT EXISTS `quotalimits` (
  `name` varchar(30) default NULL,
  `quota_type` enum('user','group','class','all') NOT NULL,
  `per_session` enum('false','true') NOT NULL,
  `limit_type` enum('soft','hard') NOT NULL,
  `bytes_in_avail` float NOT NULL,
  `bytes_out_avail` float NOT NULL,
  `bytes_xfer_avail` float NOT NULL,
  `files_in_avail` int(10) unsigned NOT NULL,
  `files_out_avail` int(10) unsigned NOT NULL,
  `files_xfer_avail` int(10) unsigned NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
--
-- Структура таблицы `quotatallies`
--
CREATE TABLE IF NOT EXISTS `quotatallies` (
  `name` varchar(30) NOT NULL,
  `quota_type` enum('user','group','class','all') NOT NULL,
  `bytes_in_used` float NOT NULL,
  `bytes_out_used` float NOT NULL,
  `bytes_xfer_used` float NOT NULL,
  `files_in_used` int(10) unsigned NOT NULL,
  `files_out_used` int(10) unsigned NOT NULL,
  `files_xfer_used` int(10) unsigned NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
--
-- Структура таблицы `users_table`
--
CREATE TABLE IF NOT EXISTS `users_table` (
  `unic_id` int(11) NOT NULL auto_increment,
  `username` varchar(20) NOT NULL,
  `password` varchar(20) NOT NULL,
  `groupname` varchar(24) NOT NULL,
  `uid` int(11) NOT NULL,
  `gid` int(11) NOT NULL,
  `homedir` varchar(50) NOT NULL,
  `shell` varchar(20) NOT NULL,
  `last_login` int(15) NOT NULL,
  `login_count` int(15) NOT NULL,
  `last_err_login` int(15) NOT NULL,
  `err_login_count` int(15) NOT NULL,
  PRIMARY KEY  (`unic_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 COMMENT='Таблица пользователей';
--
-- Структура таблицы `xfer_errors`
--
CREATE TABLE IF NOT EXISTS `xfer_errors` (
  `unic_id` int(32) NOT NULL auto_increment,
  `timestamp` int(15) NOT NULL,
  `user_name` varchar(64) NOT NULL,
  `file_and_path` tinytext NOT NULL,
  `client_name` varchar(127) NOT NULL,
  `client_IP` varchar(15) NOT NULL,
  `client_command` varchar(5) NOT NULL,
  PRIMARY KEY  (`unic_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 COMMENT='Таблица ошибок при работе';
--
-- Структура таблицы `xfer_table`
--
CREATE TABLE IF NOT EXISTS `xfer_table` (
  `unic_id` int(32) NOT NULL auto_increment,
  `timestamp` int(15) NOT NULL,
  `user_name` varchar(64) NOT NULL,
  `file_and_path` tinytext NOT NULL,
  `bytes` int(15) NOT NULL default '0',
  `client_name` varchar(127) NOT NULL,
  `client_IP` varchar(15) NOT NULL,
  `client_command` varchar(5) NOT NULL,
  `send_time` varchar(9) NOT NULL default '0',
  PRIMARY KEY  (`unic_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 COMMENT='Таблица, чё приняли-передали';
Далее в таблицу users_table нужно добавить пользователей я делал через pma:

Код: Выделить всё

INSERT INTO `users_table` (`unic_id`, `username`, `password`, `groupname`, `uid`, `gid`, `homedir`, `shell`, `last_login`, `login_count`, `last_err_login`, `err_login_count`) VALUES
(1, 'ad', 'lamer', 'ad', 1001, 1001, '/ds/ftp/user/admin', '/sbin/nologin', 0, 0, 0, 0),
(2, 'proftpd', '', 'proftp', 1002, 1002, '/ds/ftp/guest', '/sbin/nologin', 0, 0, 0, 0);
Учтите что group & gid & uid должны быть настоящими, созданными в самой системе!!!
Далее можно добавить квоты например для ананимов:

Код: Выделить всё

INSERT INTO `quotalimits` (`name`, `quota_type`, `per_session`, `limit_type`, `bytes_in_avail`, `bytes_out_avail`, `bytes_xfer_avail`, `files_in_avail`, `files_out_avail`, `files_xfer_avail`) VALUES
('proftp', 'user', 'false', 'hard', 1.04858e+08, 0, 0, 0, 0, 0);
Для справки 1mb=1048576b указывается в байтах!!!

Пояснения по таблицам:
[user_table]

Код: Выделить всё

unic_id:  уникальный номер
 username:  имя пользователя
 password: пароль
 groupname: группа
 uid: uid
 gid: gid
 homedir: домашний каталог
 shell: наличие шелла
 last_login: последний вход
 login_count: количество входов
 last_err_login: последний неудачный вход
 err_login_count: количество неудачных входов
[quotalimits]

Код: Выделить всё

name: имя виртуального пользователя
quota_type: тип ограничения по (user,qroup,class или all - для всех)
per_session: true - использовать квоту только на текущую сессию, в этом случае ни куда не записывается размер использованной квоты и для каждой новой сессии используется указанная квота. false - в этом случае использование квоты заноситься в базу данных.
limit_type: soft - возможно некоторое превышение квоты
hard - жостко заданная квота, превышение невозможно
bytes_in_avail 	лимит загрузки в байтах ( если 150 Мб то 157286400 байт) 0 = нет лемита
bytes_out_avail	лимит скачивания в байтах. 0 = нет лимита
bytes_xfer_avail: Лимит передачи в байтах.0 = нет лимита
files_in_avail:	Лимит количества загружаемых файлов. 0 = нет лимита
files_out_avail: Лимит количесва скачиваемых файлов. 0 = нет лимита
files_xfer_avail: Лимит количесва передачи файлов. 0 = нет лимита
Практически вот и все ,осталось добавить proftpd_enable="YES" в /etc/rc.conf и можно стартовать

Код: Выделить всё

# /usr/local/etc/rc.d/proftpd start
Вот и все можно пользоваться, для красоты сейчас пишу небольшой админ мод для этого дела.

Спасибо за внимание ! :smile:


Большинство материала нашел в предыдущей статье на эту тему, остольное где было! :smile:

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2009-01-04 19:49:02
Alex Keda
нормально нельзя сразу оформить?...
код - это код, текст - это текст....

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2009-01-08 10:31:30
Pez!
спасибо за статью, попозже утащю к себе )

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2009-01-08 10:49:33
Sun
Кстати к статье позже выложу еще одно приложение,это веб интерфейс управления, там включена статистика + управления квотами и четками,написано с использованием ajax. Понимаю что это от части может и сизифов труд,но все же,я делаю полностью под себя,так как мне удобно,может кому даже пригодиться :smile:

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2009-01-08 11:37:06
Andy
Sun писал(а):Кстати к статье позже выложу еще одно приложение,это веб интерфейс управления, там включина статистика + управления квотами и учетками,написано на ajax. Понимаю что это от части может и сизифов труд,но все же,я делаю полностью под себя,так как мне удобно,может кому даже пригодиться :smile:
Еще выложи пожалуйста настройки своей оболочки. Интересно взглянуть.

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2009-01-08 13:37:24
Sun

Код: Выделить всё

# $FreeBSD: src/etc/root/dot.cshrc,v 1.30 2007/05/29 06:37:58 dougb Exp $
#
# .cshrc - csh resource script, read at beginning of execution by each shell
#
# see also csh(1), environ(7).
#

alias h         history 25
alias j         jobs -l
alias la        ls -a
alias lf        ls -FA
alias ll        ls -lA

# A righteous umask
umask 22

set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin $HOME/bin)

setenv  EDITOR  ee
setenv  PAGER   more
setenv  BLOCKSIZE       K

if ($?prompt) then
        # An interactive shell -- set some stuff up
        set prompt = "%{\33[32m%}%B[%m][`id -u -n`][%~]#%b"
        set autolist = TAB
        set filec
        set history = 100
        set savehist = 100
        set mail = (/var/mail/$USER)
        if ( $?tcsh ) then
                bindkey "^W" backward-delete-word
                bindkey -k up history-search-backward
                bindkey -k down history-search-forward
        endif
endif
оболочка,скрипты пока не готовы

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2009-01-08 14:15:52
jeehadina
спасибо за зачатную статью!

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2009-01-18 11:09:08
Sun
Хотел спросить нужно ли дописывать в статье как прикрутить антивирус на фтп сервер на базе ClamAV ?

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2009-01-21 13:54:02
risk94
Я думаю что лишним не будет. Обязательно пиши.

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2009-01-25 14:07:56
server801
http://www.opennet.ru/base/net/proftpd_ ... a.txt.html
я по ней настраивал-да и статья очень похожа
а вот про proma не нашел статьи
если можете-напишите что и как !просьба прям огромная!люблю просто точность-фря научила!
еще раз привожу к тому выводу-линух в большууууууууую топку!!!!!!

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2009-02-03 16:35:14
mtxd
В статье рассмотрено сохранение истории скачанного. Есть ли возможность переменную %f (полный путь до файла) писать в базу с кодировкой utf8? Все файлы на сервере в utf8.

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2009-03-27 4:35:37
udaff
Выложи пожалуйста админку, народ будет сильно благодарен.
Зарание спасибо!

Re: ProFTPd+MySQL+QUOTA

Добавлено: 2009-10-19 1:56:37
harmless
Не совсем под эту писалась ProMA но все же есть начало на развитие
Вот предлагаю свою переделку промы - в скорем будущем приделаю к ней управление и квотами а пока увы только то, что есть, но если поставите эту - совместимость можно будет рассмотреть)
http://forum.lissyara.su/viewtopic.php? ... 25#p200909