Problema com a instalação na web do Icinga - erros do lado do servidor

1

Instalei e configurei com sucesso o Icinga 1.3 e obtive o básico interface web funcionando e tudo é bom.

Agora estou tentando fazer o icinga-web funcionar. Eu segui as instruções documentado aqui:

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

Quando eu navego para o aplicativo icinga-web, consigo fazer logon, mas recebo uma página em branco. Quando eu fazer uma visão-fonte vejo todo o HTML e marcação para a página e também o seguinte erro nas ferramentas do desenvolvedor do Chrome:

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

Após a verificação de /usr/local/icinga-web/app/data/log/icinga-web-2011-03-16.log I Estou vendo este erro idêntico para cada solicitação que faço da página:

[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)'

De acordo com os documentos de instalação, tentei limpar o cache com:

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

E, em seguida, reiniciar o apache, mas não consigo passar por isso.

Eu construí o icinga-web hoje a partir do repositório do git em:

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

Eu também tentei construir a partir da bola de alcatrão 1.3.0, mas ainda assim tive o mesmo problema.

Alguém já encontrou esse problema antes?

Atualização:

Isso é instalado em:

  • Centos 5.2 32 bits x86
  • Apache 2.2.3 (instalação padrão do repo)
  • PHP 5.2.17 (instalado a partir dos Pacotes da Comunidade IUS)
  • MySQL 5.0 (instalação padrão do repo)
  • IDOUtils instalado - usei este guia rápido: link
por Kev 16.03.2011 / 10:31

2 respostas

1

Eu falei sobre isso e o problema parece estar dentro dos componentes do Agavi, especificamente:

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

E dentro do método writeCache() :

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

Eu coloquei uma linha do logger neste código e vi que o mkdir está tentando criar recursivamente um diretório como:

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

Eu apaguei isso, reiniciei o apache, mas o problema persistiu.

Neste ponto, o servidor estava executando o PHP 5.2.17.

Eu atualizei o PHP para o 5.3.5 e este problema resolveu-se magicamente.

Por interesse, coloquei o PHP de volta no 5.2.17 para ver se havia alguma diferença entre o comportamento da função mkdir() naquela versão em comparação com a do 5.3.5. Um script de teste mostrou que tudo o que o PHP fez foi avisar que a pasta existia em ambas as versões, não houve nenhum erro de hardware.

Além disso, e bizarramente, o icinga-web começou a trabalhar com o PHP 5.2.17 .... e eu não tenho ideia do porquê. Eu verifiquei os arquivos php.ini de ambas as versões pensando que as configurações de error_reporting podem ter mudado, mas elas eram as mesmas (exceto que o PHP 5.3.5 é definido como E_ALL & ~E_NOTICE | E_DEPRECATED , enquanto 5.2.17 é definido como E_ALL & ~E_NOTICE ).

Espero que isso seja útil para qualquer outra pessoa que encontre o mesmo problema.

    
por 17.03.2011 / 19:33
1

Eu tive o mesmo problema. Demorei um tempo para encontrar a solução. O "AppKitPHPError" é bastante enganador; a causa real é muito mais simples e fácil de resolver.

Está simplesmente perdendo credenciais. Edite as duas configurações a seguir e preencha o seu DB-logon correto

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

Depois disso, você está pronto e o erro desaparecerá

Divirta-se !!

ranX

    
por 23.04.2011 / 11:43