Installation Icinga web frontend
Prev | Chapter 10. Development | Next

## Installation Icinga web frontend

Since there is no installer available yet, it's not very easy to install the web frontend for the first time.

Here is an example config. If you don't want to use the provided values (directories, database, etc.) you have to modify the code a little bit. Let's go:

1. Move git clone to /var/www/icinga-web (in this example). Please note that the path to the web directory depends on the distribution you use:

        # mv icinga-web /var/www

2. Check out the Icinga API and move it to /var/www/lib/icinga-api:

        # git clone git://git.icinga.org/icinga-api.git/
        # mv icinga-api /var/www/icinga-web/lib/

3. Change owner of web directory to http user:

   Fedora / RedHat / CentOS

        # chown -R apache:apache /var/www/icinga-web

   Ubuntu / Debian / openSuSE

        # chown -R www-data:www-data /var/www/icinga-web

4. Create database and set grants:

        # mysql -u root -p
        mysql> CREATE DATABASE icinga_web;
        mysql> GRANT ALL ON 'icinga_web.*' TO 'icinga_web'@'localhost' IDENTIFIED BY 'icinga_web';
        mysql> FLUSH PRIVILEGES;
        quit

5. Import database from the following files:

        # mysql -u root -p icinga_web < /var/www/icinga-web/etc/database/rescue_schema.sql
        # mysql -u root -p icinga_web < /var/www/icinga-web/etc/database/rescue_data.sql

6. Edit /var/www/icinga-web/app/config/databases.xml and set database credentials (block should begin at line 7):

           <database name="appkit_default" class="AgaviDoctrineDatabase">
              <ae:parameter name="dsn">mysql://icinga_web:icinga_web@127.0.0.1:3306/icinga_web</ae:parameter>
              <ae:parameter name="username">icinga_web</ae:parameter>
              <ae:parameter name="password">icinga_web</ae:parameter>
              <ae:parameter name="charset">utf8</ae:parameter>
              <ae:parameter name="manager_attributes">

                 <ae:parameter name="MODEL_LOADING">CONSERVATIVE</ae:parameter>
              </ae:parameter>
              <ae:parameter name="load_models">%de.icinga.appkit.doctrine_model_path%</ae:parameter>
           </database>

7. Edit /var/www/icinga-web/app/config/icinga.xml and set database credentials to give access to ido-db (block should begin at line 163):

        <parameter name="IcingaData">
            <parameter name="class">IcingaData</parameter>
            <parameter name="api_file">%core.root_dir%/lib/icinga-api/IcingaApi.php</parameter>
            <parameter name="api_type">IcingaApi::CONNECTION_IDO</parameter>
            <parameter name="config_type">mysql</parameter>
            <parameter name="config_host">127.0.0.1</parameter>

            <parameter name="config_port">3306</parameter>
            <parameter name="config_database">icinga</parameter>

            <parameter name="config_user">icinga</parameter>
            <parameter name="config_password">icinga</parameter>

            <parameter name="config_table_prefix">icinga_</parameter>
        </parameter>

   | Note
   Please keep in mind that you have to install IDOUtils before (according to the “Icinga with IDOUtils Quickstart” )

8. Set up a virtual host:

        <VirtualHost *:80>

           ServerName icinga-web

           DocumentRoot /var/www/icinga-web/pub/

           DirectoryIndex index.php

           <Directory /var/www/icinga-web/pub/>
              Options -MultiViews -Indexes +FollowSymLinks
              AllowOverride none
              Order allow,deny
              Allow from all

              <IfModule mod_rewrite.c>
                 RewriteEngine On
                 RewriteBase /

                 # If the requested URL does not exist (it's likely an agavi route),
                 # pass it as path info to index.php, the Agavi dispatch script.
                 RewriteRule ^$ index.php?/ [QSA,L]
                 RewriteCond %{REQUEST_FILENAME} !-f
                 RewriteCond %{REQUEST_FILENAME} !-d
                 RewriteRule (.*) index.php?/$1 [QSA,L]
              </IfModule>

           </Directory>

           # deny something!
           <Location />
              Options -MultiViews -Indexes +FollowSymLinks
              Order allow,deny
              Allow from all
           </Location>

           # JS frameworks
           Alias /js/yui               /var/www/icinga-web/lib/yui
           Alias /js/swfobject         /var/www/icinga-web/lib/swfobject
           Alias /js/mootools          /var/www/icinga-web/lib/mootools
           Alias /js/jquery            /var/www/icinga-web/lib/jquery
           Alias /js/appkit            /var/www/icinga-web/lib/appkit/js
           Alias /js/gc-prettify       /var/www/icinga-web/lib/gc-prettify
           Alias /js/firebug           /var/www/icinga-web/lib/firebug
           Alias /js/ext3              /var/www/icinga-web/lib/ext3

           # Flash frameworks
           Alias /flash/flexchart      /var/www/icinga-web/lib/flexchart

           <IfDefine APACHE2>
              AcceptPathInfo On
           </IfDefine>

        </VirtualHost>

9. Clear cache

        # rm /var/www/icinga-web/app/cache/config/*.php

10. Reload your web server config

    Fedora/RedHat/CentOS

         # service httpd reload

    Ubuntu / openSuSE

         # /etc/init.d/apache2 reload

That's it.

Prev | Up | Next
Developing Plugins For Use With Embedded Perl | Home | Index

© 2009 Icinga Development Team, http://www.icinga.org