LINUX.ORG.RU
ФорумAdmin

Apache, SVN, mod_dav_svn и репозитарий на русском языке. Проблема с кодировкой.


0

0

Пользуясь инструкциями и советами (особенно на L.o.r.'е, спасибо всем кто способствовал) поднял SVN с LDAP аутентификацией, которая делается, конечно же, через Apache. То есть Apache делает LDAP-аутентификацию, и раздаёт репозитарий с помощью mod_dav_svn. Всё работает, виндовые клиенты пользуются репозитариями с англоязычными названиями, папки в них могут иметь названия с кириллицей и пробелами, никаких проблем. Но поставили задачу заиметь репозитарии с кириллическими названиями, а с этим проблема. Ссылка для доступа к репозитарию, например, такая:

http://my.domain.ru/svn/reponame

svn, согласно настройкам mod_dav_svn, это не директория, это указание, что нужно дальше работать с svn, а не с директорией на сервере. Стандартно.

reponame -- имя репозитария. И если оно состоит из кириллицы, то на сервер приходит строчка вида:

http://my.domain.ru/svn/%D0%B8%D0%BB%D0%B8%D0%E0%D0%B8%D0%BB%D0%B8%D0%E0%D0%B...

Резопозитарий создавался командой вида:

svnadmin create --fs-type fsfs имярепо

Как я понимаю нужно заставить Apache преобразовать проценты и буквы в это самое имярепо. Как это сделать? К какому из модулей это относится? В каком конфиге это надо прописать?

★★★★★

Ответ на: комментарий от borisych

еще не ясно зачем вы браузером пользуетесь для доступа к svn. если чтобы быстро посмотреть, то какая разница что там в адресной строке творится. если пользоваться серьезно то лучше установить svn-клиент. можете еще DAV в windows настроить: сетевое окружение->новое место в сетевом окружении, туда вводите url вашего репозитария, русские буквы там работают.

borisych ★★★★★
()
Ответ на: комментарий от borisych

Ненормально кодирует.

>да нормально все, у вас все там в utf, а то что клиент кодирует utf-символы это проблема клиента а не svn

Проблема в том, что клиентом в данном случае выступет mod_dav_svn.

Вот что капает в error.log при обращении к /svn/Библиотека  (TortoiseSVN'ом)

[Mon Sep 08 16:49:09 2008] [error] [client 192.168.1.1] (20014)Internal error: Can't convert string from 'UTF-8' to native encoding:
[Mon Sep 08 16:49:09 2008] [error] [client 192.168.1.1] Could not fetch resource information.  [500, #0]
[Mon Sep 08 16:49:09 2008] [error] [client 192.168.1.1] Could not open the requested SVN filesystem  [500, #22]
[Mon Sep 08 16:49:09 2008] [error] [client 192.168.1.1] Could not open the requested SVN filesystem  [500, #22]
[Mon Sep 08 16:49:09 2008] [error] [client 192.168.1.1] The URI does not contain the name of a repository.  [403, #190001]
[Mon Sep 08 16:49:09 2008] [error] [client 192.168.1.1] The URI does not contain the name of a repository.  [403, #190001]

Локаль стоит ru_RU.UTF-8. 

Camel ★★★★★
() автор топика
Ответ на: Ненормально кодирует. от Camel

Вдогонку.

В TortoiseSVN при этом: "Could not open the requested SVN filesystem".

192.168.1.1 -- IP сервера.

Camel ★★★★★
() автор топика
Ответ на: комментарий от borisych

Совершенно ненормально кодирует.

>точно? проверели в /proc/<pid>/environ ? пробовали ставить другую?

Неточно:

# cat /proc/12345/environ APACHE_PID_FILE=/var/run/apache2.pidPATH=/usr/local/bin:/usr/bin:/binLANG=CAPAC HE_RUN_GROUP=www-dataAPACHE_RUN_USER=www-dataPWD=/var/log/apache2

LANG=C это совсем не UTF-8. Где бы его поменять?

Camel ★★★★★
() автор топика
Ответ на: комментарий от borisych

Работает.

Да, спасибо, я уже поменял. В моём Ubuntu это делается в /etc/init.d/apache2

ENV="env -i LANG=ru_RU.UTF-8 PATH=/usr/local/bin:/usr/bin:/bin"

Спасибо, за науку, borisych.

Camel ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.