![Icinga Web 安装问题 - 服务器端错误](https://linux22.com/image/543055/Icinga%20Web%20%E5%AE%89%E8%A3%85%E9%97%AE%E9%A2%98%20-%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E9%94%99%E8%AF%AF.png)
我已经成功安装并配置冰加 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
我对该页面的每个请求都看到相同的错误:
[2011 年 3 月 16 日星期三 01:29:08] [严重] 未捕获的 AppKitPHPError:PHP 错误 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 repo 构建了 icinga-web:
git://git.icinga.org/icinga-web.git
我也尝试从 1.3.0 tar ball 进行构建但仍然遇到同样的问题。
以前有人遇到过这个问题吗?
更新:
安装在:
- Centos 5.2 32 位 x86
- Apache 2.2.3(标准 repo 安装)
- PHP 5.2.17(从 IUS 社区包安装)
- MySQL 5.0(标准 repo 安装)
- IDOUtils 已安装-我使用了这个快速启动:http://docs.icinga.org/latest/en/quickstart-idoutils.html
答案1
我对此进行了研究,问题似乎出在 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
)。
希望这对遇到同样问题的人有用。
答案2
我也遇到过同样的问题。我花了很长时间才找到解决方案。“AppKitPHPError”非常容易让人误解;真正的原因要简单得多,也容易解决。
它只是缺少凭证。编辑以下两个配置并填写正确的 DB-logon
- /whereveryouricingarootis/icinga-web/app/modules/Web/config/icinga-io.xml
- /whereveryouricingarootis/icinga-web/app/modules/Web/config/icinga-io.site.xml
完成后,错误就会消失
玩得开心 !!
随机数