LINUX.ORG.RU
ФорумAdmin

SVN, Apache (dav_svn) и кириллица в названиях репозитариев.


0

0

Поднимаю SVN с Apach'ем на D-Link'овском настольком NAS'очке DNS-323 (ARM 500 МГц). Поставил Debian в chroot как описано в

http://wiki.dns323.info/howto:chroot_debian#the_easy_way

Debian обновил до Lenny, поставил SVN и Apache. Запустил

# dpkg-reconfigre locales

Выбрал там ru_RU.UTF-8.

# locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=

Вроде бы заставил Apache запускаться с локалью ru_RU.UTF-8.

# grep '^ENV' /etc/init.d/apache2
ENV="env -i LANG=ru_RU.UTF-8 LANGUAGE=ru_RU.UTF-8 LC_ALL=ru_RU.UTF-8 LC_TYPE=ru_RU.UTF-8 LC_MESSAGES=ru_RU.UTF-8 PATH=/usr/local/bin:/usr/bin:/bin"

# ps aux | grep apache | head -n 1
root 2549 0.0 9.0 16536 5620 ? Ss 13:16 0:01 /usr/sbin/apache2 -k start

# cat /proc/2549/environ
APACHE_PID_FILE=/var/run/apache2.pidAPACHE_RUN_USER=www-dataLC_ALL=ru_RU.UTF-8L C_TYPE=ru_RU.UTF-8PATH=/usr/local/bin:/usr/bin:/binLC_MESSAGES=ru_RU.UTF-8PWD=/r ootAPACHE_RUN_GROUP=www-dataLANG=ru_RU.UTF-8SHLVL=1LANGUAGE=ru_RU.UTF-8_=/usr/sb in/apache2

Но получить доступ к репозиториям с кириллицей в названии по-прежнему невозможно. В log валятся вот такие ошибки:

Internal error: Can't convert string from 'UTF-8' to native encoding:

Когда поднимал SVN на сервере большего размера была такая же проблема

http://www.linux.org.ru/jump-message.jsp?msgid=3071135&cid=3078314

Помогло изменение ENV в /etc/init.d/apache2

Но в этот раз не помогает. Что же делать?

★★★★★

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

locale -a

>locale -a что говорит?

~# locale -a
C
en_US.utf8
POSIX
ru_RU
ru_RU.cp1251
ru_RU.iso88595
ru_RU.koi8r
ru_RU.utf8
russian

# locale
LANG=ru_RU.UTF-8
LANGUAGE=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=ru_RU.UTF-8

Хм. Я правильно, что ru_RU.utf8 это не совсем ru_RU.UTF-8, и в этом как бы проблема? Как в Debian правильно сгенерить ru_RU.UTF-8? Не переписывать же все конфиги.

Попробовал locale-gen, ничего не поменялось:

# sed /etc/locale.gen -e '/^#/d'

en_US.UTF-8 UTF-8
ru_RU ISO-8859-5
ru_RU.CP1251 CP1251
ru_RU.KOI8-R KOI8-R
ru_RU.UTF-8 UTF-8

# /usr/sbin/locale-gen

# locale -a
C
en_US.utf8
POSIX
ru_RU
ru_RU.cp1251
ru_RU.iso88595
ru_RU.koi8r
ru_RU.utf8
russian

Это нормально, что вместо ru_RU.UTF-8 генерится ru_RU.utf8?

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

Не помогло.

>Вот и прописывайте в LC_*/LANG*=ru_RU.utf8

Попробовал прописать ru_RU.utf8 в $ENV в /etc/init.d/apache2, apache2 запустился с ru_RU.utf8 в /proc/<pid>/environ, но проблему это не решило. Хны-хны.

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