Назад | Перейти на главную страницу

Проблема с установкой Icinga Web - ошибки на стороне сервера

Я успешно установил и настроил Icinga 1.3 и получил базовый веб-интерфейс, и все в порядке.

Я сейчас пытаюсь заставить работать icinga-web. Я выполнил инструкции, приведенные здесь:

http://docs.icinga.org/latest/en/icinga-web-scratch.html

Когда я открываю приложение icinga-web, я могу войти в систему, но получаю пустую страницу. Когда я просматриваю исходный код, я вижу весь HTML и разметку для страницы, а также следующую ошибку в инструментах разработчика Chrome:

GET http://nagios.node/icinga-web/appkit/squishloader/javascript 500 (Internal Server Error)

После проверки /usr/local/icinga-web/app/data/log/icinga-web-2011-03-16.log Я вижу эту идентичную ошибку при каждом запросе страницы:

[Wed Mar 16 01:29:08 2011] [fatal] Uncaught AppKitPHPError: PHP Error
mkdir() [function.mkdir]: File exists
(/usr/local/icinga-web/app/cache/config/compile.xml_development__033d402eaeb08f42e4e3d5f8474e444805e2c7c6.php:1327)
(/usr/local/icinga-web/app/modules/AppKit/lib/logging/AppKitExceptionHandler.class.php:20)`

В соответствии с документами по установке я попытался очистить кеш с помощью:

rm /usr/local/icinga-web/app/cache/config/*.php

А затем перезапускаем apache, но я не могу пройти через это.

Сегодня я создал icinga-web из репозитория git по адресу:

git://git.icinga.org/icinga-web.git

Я также пробовал собирать из tar-файла 1.3.0, но все равно сталкивался с той же проблемой.

Кто-нибудь сталкивался с этой проблемой раньше?

Обновить:

Это установлено на:

Я была такая же проблема. Мне потребовалось время, чтобы найти решение. Ошибка «AppKitPHPError» вводит в заблуждение; настоящая причина намного проще, и ее легко устранить.

Просто отсутствуют учетные данные. Отредактируйте следующие две конфигурации, указав правильный вход в базу данных

  • /whereveryouricingarootis/icinga-web/app/modules/Web/config/icinga-io.xml
  • /whereveryouricingarootis/icinga-web/app/modules/Web/config/icinga-io.site.xml

После этого все будет готово и ошибка исчезнет.

Радоваться, веселиться !!

ranX

Я ковырялся в этом, и проблема, похоже, связана с компонентами Agavi, а именно:

lib/agavi/src/filter/AgaviExecutionFilter.class.php

А внутри writeCache() метод:

@mkdir(AgaviConfig::get('core.cache_dir') . DIRECTORY_SEPARATOR . 
        self::CACHE_SUBDIR .
        DIRECTORY_SEPARATOR . implode(DIRECTORY_SEPARATOR , 
        array_slice($groups, 0, -1)), 0777, true);

Я добавил в этот код строку регистратора и увидел, что mkdir пытается рекурсивно создать каталог, например:

/usr/local/icinga-www/app/cache/content/amF2YXNjcmlwdF9jb250ZW50/QXBwS2l0X1dpZGdldHMvU3F1aXNoTG9hZGVy

Я удалил это, перезапустил apache, но проблема не исчезла.

В этот момент на сервере работал PHP 5.2.17.

Я обновил PHP до версии 5.3.5, и проблема разрешилась сама собой.

Из интереса я отбросил PHP до версии 5.2.17, чтобы посмотреть, есть ли различия между mkdir() поведение функции в этой версии по сравнению с поведением в 5.3.5. Тестовый сценарий показал, что PHP только предупреждал о существовании папки в обеих версиях, никаких серьезных ошибок не было.

Кроме того, как ни странно, icinga-web начал работать с PHP 5.2.17 ... и я не знаю почему. Я проверил обе версии файлов php.ini, думая, что настройки error_reporting могли измениться, но они были такими же (за исключением того, что для PHP 5.3.5 установлено значение E_ALL & ~E_NOTICE | E_DEPRECATED тогда как 5.2.17 установлен на E_ALL & ~E_NOTICE).

Надеюсь, это будет полезно для всех, кто сталкивается с той же проблемой.