ProFtpd по-русски. Изменение кодировки koi8->win1251 на лету

Написал Dmitriy Pascal

Friday, 16 December 2005

Много у кого осталась нерешенной проблема использования на юниксовых серверах файлов с названиями в кодировке koi8 клиентами под windows.

Аналогичную проблему испытывают японцы со своими языковыми кодировками.

Их решение ("ProFTPD - iconv() charset conversion patch" http://home.h01.itscom.net/para/software/misc/proftpd-iconv/index-e.html) можно и использовать под нас.

На своем сервере FreeBSD мне захотелось, что бы proftpd был установлен из портов, но был пропатченным.

Итак, приступим.

Нам потребуется libiconv

cd /usr/ports/converters/libiconv

make install

make clean

Распакуем сырцы proftpd

cd /usr/ports/ftp/proftpd

make extract

Скачаем сам патч в каталог /usr/ports/ftp/proftpd/work

cd /usr/ports/ftp/proftpd/work

fetch http://home.h01.itscom.net/para/software/misc/proftpd-iconv/pack/proftpd-1.2.10-iconv.patch.gz

патчим командой

gzip -cd proftpd-1.2.10-iconv.patch.gz |patch -p0

после этого идем в proftpd-1.2.10/src/netio.c

ищем switch (mode) {

case IAC:

и вырезаем весь этот свитч, строк там много, около 2х экранов

в /usr/ports/ftp/proftpd/Makefile

добавляем такие строчки между любыми ".if defined(WITH_***)":

MODULES:=${MODULES}:mod_codeconv

INCLUDEDIRS:=${INCLUDEDIRS}:${PREFIX}/include

LIBDIRS:=${LIBDIRS}:${PREFIX}/lib

Конфигурируем командой

make configure

после этого правим work/proftpd-1.2.10/Make.rules находим LIBS= и в конец строки добавляем -liconv

После этого уже делаем

make

make install

Если make не прокатил, следует поковырять Makefile, что я с ним делал, я уже не помню, но смысл в том, что бы configure выполнилось с ключами

--with-modules=mod_codeconv --with-libraries=/usr/local/lib

--with-includes=/usr/local/include

Теперь в /usr/local/etc/proftpd.conf добавляем

CharsetLocal KOI8-R

CharsetRemote CP1251

Все!!! Теперь можно в качестве клиента любой браузер использовать без таблиц кодировки, т.е. имея к примеру на сервере unix+proftpd+samba

клиенты под windows смогут без проблем работать с файлами в win1251 кодировке.

http://www.rostovlinux.ru/content/view/111/56/

Обновлено: 12.03.2015