среда, 28 августа 2013 г.

redmine: Internal error на /settings и /users/1/edit

Ошибка обычно возникает после обновления редмайна, при обращении в /settings и добавлении/правке юзеров, при том что остальное работает нормально.



Для начала, проверим {redmine_directory}/log/{production|development}.log. Если такого файла нет - нужно проверить, что на каталог log стоят нужные владелец и права.

Может быть, что файл есть, но там только записи после обновления базы -- надо проверить владельца (может быть рут)

Каталог есть, лог есть, права правильные, но ошибку в лог не пишет? В конфиге сайта апача должна быть строка  (запуск через mod_passenger)
RailsEnv production
без неё сайт вроде как и работает, но в логи не пишет.

А дальше, когда есть текст ошибки, уже понятнее что делать -- обычно это старый/конфликтный модуль или его настройки, первым делом можно прогнать в корне проекта bundle install, это доставит нужные/недостающие модули.

В частности может быть
ActionView::Template::Error (invalid byte sequence in UTF-8):
Проблема в том, что система видит русские символы и ей это не нравится. Так что надо убедиться, что база и все таблицы в utf8, и:
Вариант 1
 в config/database.yml прописать 
'adapter: mysql2' (вместо mysql) и доставить этот гем, gem install mysq2 -v 0.3.13, возможно доставив пакет libmysqlclient-dev 

Вариант 2
в config/environment.rb первой строкой вписываем
Encoding.default_internal = 'UTF-8'

Оба варианта были проверены на практике.

Линки

3 комментария:

  1. как вариант если используется Passenger то нужно проверить права на папки т.к. сам Passenger запускается не от пользователя nginx

    ОтветитьУдалить
  2. БОЛЬШОЕ СПАСИБО, второй день бьюсь, переношу базу с redmine 1.1.3 на redmine 2.4 и после
    http://www.redmine.org/projects/redmine/wiki/RedmineUpgrade
    ни как не хотела запускаться.
    Второй способ помог, хотя логи так нормально писать и не стал.

    ОтветитьУдалить
  3. Спасибо тебе, дружище. Выручил.
    Помог первый способ.

    ОтветитьУдалить