Ошибки в логе по-русски?

Afliatunov

Guest
Ошибки в логе по-русски?

Здравствуйте.
На нашем веб-сервере (russian apache) установлен PHP-4.3.10 в связке с ораклом. Все записи в оракле ведутся в кодировке windows-1251, все документы на сервере (хоть он и под линуксом) тоже в этой кодировке. При работе php-скриптов зачастую в error.log апача записываются ошибки наподобие такой:
--
[Tue Mar 29 14:13:41 2005] [error] PHP Warning: ociexecute(): OCIStmtExecute: ORA-00923: \xea\xeb\xfe\xf7\xe5\xe2\xee\xe5 \xf1\xeb\xee\xe2\xee FROM \xed\xe5 \xed\xe0\xe9\xe4\xe5\xed\xee \xf2\xe0\xec, \xe3\xe4\xe5 \xee\xed\xee \xee\xe6\xe8\xe4\xe0\xeb\xee\xf1\xfc\n in /var/httpd/www.taom.ru/tm/login.php on line 6
--
Что сделать, чтоб такие ошибки записывались в лог по-русски, в той же windows-1251? Ну, или хотя бы по-английски?

--
Андрей.
 

Afliatunov

Guest
и чё поставить - LC_MESSAGES=ru_RU?
В системе нет локали CP1251..
 

Afliatunov

Guest
Записал в apachectl
LC_MESSAGES=POSIX;export LC_MESSAGES
Перепустил, - ничего не изменилось :(.
Может ещё какие мысли есть?
 

Afliatunov

Guest
#> locale
LANG=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=

-~{}~ 01.04.05 15:21:

AFAIK POSIX=C. Не так ли?
 

YRusinov

Филин Ух
Возможно, что дело в том, что у вас стоит russian apache, у меня стоит нормальный англоязычный apache и в error_log ничего такого не пишется, поэтому стоит попробовать поставить и запустить english apache
 

Afliatunov

Guest
Есть мнение, что это пхп не понимает русскую ошибку оракла и криво передает ее апачу для записи в лог. Ибо пару обновлений пхп назад нормально русские ошибки журналировались тем же русским апачем. Что скажете?
 

tony2001

TeaM PHPClub
Есть мнение, что PHP вообще ничего не понимает и пишет в лог то, что дают ему.
Соотв-но, если у вас NLS_LANG стоит русский, то Оракл и ошибки русские выдает, а PHP их в лог пишет.
Всё волшебство в NLS_LANG и других переменных окружения.
 

Afliatunov

Guest
Да, но конфигурация апача и пхп не менялась с тех пор, как все работало!
В apachectl прописано "NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251; export NLS_LANG". В браузере ошибка выводится нормально, по-русски.
Единственно, что производились обновления и апача и пхп. После какого-то обновления по-русски в лог писаться перестало...

-~{}~ 06.04.05 17:42:

Если кому интересно:
Я нашел причину. Лог перестал писаться правильно после обновления апача с apache_1.3.29rusPL30.19 до apache_1.3.33rusPL30.21. И никакие переменные тут ни при чем.
Вернул пока 1.3.29, - русские ошибки записываются нормально. Может в следующей версии поправят...
 
Сверху