Я успешно установил и настроил Icinga 1.3 и получил базовый веб-интерфейс, и все в порядке.
Я сейчас пытаюсь заставить работать icinga-web. Я выполнил инструкции, приведенные здесь:
Когда я открываю приложение 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» вводит в заблуждение; настоящая причина намного проще, и ее легко устранить.
Просто отсутствуют учетные данные. Отредактируйте следующие две конфигурации, указав правильный вход в базу данных
После этого все будет готово и ошибка исчезнет.
Радоваться, веселиться !!
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
).
Надеюсь, это будет полезно для всех, кто сталкивается с той же проблемой.