Icinga 1. を正常にインストールして構成し、基本的なWebインターフェイスを起動して実行しました。すべて問題ありません。
私は今、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]:ファイルが存在します (/ 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を再起動しますが、これを乗り越えることができないようです。
私は今日、次のgitリポジトリからicinga-webを構築しました。
git://git.icinga.org/icinga-web.git
また、1.3.0 tarボールからビルドしようとしましたが、それでも同じ問題が発生します。
誰かが以前にこの問題に遭遇したことがありますか?
更新:
これは次の場所にインストールされます:
私はこれについて突っ込んだが、問題は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 ....で動作し始めましたが、理由はわかりません。error_reporting設定にある可能性があると考えて両方のバージョンのphp.iniファイルを確認しました。変更されましたが、同じでした(ただし、PHP 5.3.5は_E_ALL & ~E_NOTICE | E_DEPRECATED
_に設定され、5.2.17は_E_ALL & ~E_NOTICE
_に設定されています)。
これが同じ問題に直面している他の人に役立つことを願っています。
私も同じ問題を抱えていました。解決策を見つけるのに時間がかかりました。 「AppKitPHPError」はかなり誤解を招く可能性があります。本当の原因ははるかに単純で、簡単に解決できます。
資格情報が欠落しているだけです。次の2つの構成を編集して、正しいDBログオンを入力します
この後、完了し、エラーは消えます
楽しんで !!
ranX