"; echo " $label "; echo ""; if (!extension_loaded($ext)){ echo ""; return 1; } else { echo ""; return 0; } echo ""; } function check_include ( $ext, $label ){ echo ""; echo " $label "; echo ""; if (!include($ext)){ echo ""; return 1; } else { echo ""; return 0; } echo ""; } function check_exists ( $file, $label ){ echo ""; echo " $label "; echo ""; if (!file_exists ($file)){ echo " "; return 1; } else { echo " "; return 0; } echo ""; } function check_generic ( $ok, $label ){ echo ""; echo " $label "; echo ""; if ($ok == 0 ){ echo " "; return 1; } else { echo " "; return 0; } echo ""; } function check_writable ( $fullpath, $label ){ echo ""; echo " $label "; echo ""; if (file_exists($fullpath)) if (is_writable($fullpath)){ echo " "; echo ""; return 0; } else { echo " "; echo ""; return 1; } else { echo " "; echo ""; return 1; } } function check_variable ( $var, $value, $label, $mode ){ echo ""; echo " $label "; echo ""; if ($mode == 1){ if ($var >= $value){ echo " "; return 0; } else { echo " "; return 1; } } elseif ($var == $value){ echo " "; return 0; } else { echo " "; return 1; } echo ""; } function parse_mysql_dump($url){ if (file_exists($url)){ $file_content = file($url); $query = ""; foreach($file_content as $sql_line){ if(trim($sql_line) != "" && strpos($sql_line, "--") === false){ $query .= $sql_line; if(preg_match("/;[\040]*\$/", $sql_line)){ //echo "DEBUG $query
"; //Uncomment for debug if (!$result = mysql_query($query)) { // echo mysql_errno() . ": " . mysql_error(); //Uncomment for debug return 0; } $query = ""; } } } return 1; } else { return 0; } } function random_name ($size){ $temp = ""; for ($a=0;$a< $size;$a++) $temp = $temp. chr(rand(122,97)); return $temp; } function install_step1() { echo "

Pandora FMS installation wizard. Step #1 of 4

Welcome to Pandora FMS 2.0 installation Wizard

This wizard helps you to quick install Pandora FMS console in your system.

In four steps checks all dependencies and make your configuration for a quick installation.

For more information, please refer to documentation.

Pandora FMS Development Team "; if (file_exists("include/config.php")){ echo "
Warning: You already have a config.php file. Configuration and database would be overwritten if you continued.
"; } echo ""; $writable = check_writable ( "include", "Checking if ./config is writable"); if (file_exists("include/config.php")) $writable += check_writable ( "include/config.php", "Checking if include/config.php is writable"); echo "
"; echo "
Warning: This installer will overwrite and destroy your existing Pandora FMS configuration and Database. Before continue, please be sure that you have no valuable Pandora FMS data in your Database.
"; echo "
Upgrade: If you want to upgrade from Pandora FMS 1.3.x to 2.0 version, please download the migration tool from our website at PandoraFMS.com web site.
"; echo "

"; if ($writable == 0) echo " "; else echo "
ERROR:You need to setup permissions to be able to write in ./include directory
"; echo "
Pandora FMS is an OpenSource Software project registered at SourceForge
"; } function install_step2() { echo "

Pandora FMS console installation wizard. Step #2 of 4

"; echo "

Checking software dependencies

"; echo ""; $res = 0; $res += check_variable(phpversion(),"4.3","PHP version >= 4.3.x",1); $res += check_extension("mysql","PHP MySQL extension"); $res += check_extension("gd","PHP gd extension"); $res += check_extension("snmp","PHP SNMP extension"); $res += check_extension("session","PHP session extension"); $res += check_extension("gettext","PHP gettext extension"); $res += check_include("PEAR.php","PEAR PHP Library"); $res += check_include("DB.php","PEAR:DB PHP Library"); $res += check_include("XML/RPC.php","PEAR XML/RPC.php PHP Library"); $res += check_exists ("/usr/bin/twopi","Graphviz Binary"); echo "

"; if ($res > 0) { echo "
You have some incomplete dependencies. Please correct them or this installer will not be able to finish your installation.
Ignore it. Force install Step #3"; } else { echo " "; } echo "
Pandora FMS is an OpenSource Software project registered at SourceForge
"; } function install_step3() { echo "

Pandora FMS console installation wizard. Step #3 of 4

Environment and database setup

This wizard will create your Pandora FMS database, and populate it with all the data needed to run for the first time.

You need a privileged user to create database schema, this is usually root user. Information about root user will not be used or stored anymore.

Now, please, complete all details to configure your database and environment setup.

Warning: This installer will overwrite and destroy your existing Pandora FMS configuration and Database. Before continue, please be sure that you have no valuable Pandora FMS data in your Database.

DB User with privileges on MySQL
DB Password for this user
DB Hostname of MySQL
DB Name (pandora by default)
Full path to HTTP publication directory
For example /var/www/pandora_console/. Needed for graphs and attachments.
Full local URL to Pandora FMS Console
For example '/pandora_console'

Pandora FMS is an OpenSource Software project registered at SourceForge
"; } function install_step4() { $pandora_config = "include/config.php"; if ( (! isset($_POST["user"])) || (! isset($_POST["dbname"])) || (! isset($_POST["host"])) || (! isset($_POST["pass"])) ) { $dbpassword = ""; $dbuser = ""; $dbhost = ""; $dbname = ""; } else { $dbpassword = $_POST["pass"]; $dbuser = $_POST["user"]; $dbhost = $_POST["host"]; $dbname = $_POST["dbname"]; if (isset($_POST["url"])) $url = $_POST["url"]; else $url = "http://localhost"; if (isset($_POST["path"])) $path = $_POST["path"]; else $path = "/var/www"; } $everything_ok = 0; $step1=0; $step2=0; $step3=0; $step4=0; $step5=0; $step6=0; $step7=0; echo "

Pandora FMS Console installation wizard. Step #4 of 4

Creating database and default configuration file

"; if (! mysql_connect ($dbhost,$dbuser,$dbpassword)) { check_generic ( 0, "Connection with Database"); } else { check_generic ( 1, "Connection with Database"); // Create schema $step1 = mysql_query ("CREATE DATABASE $dbname"); check_generic ($step1, "Creating database '$dbname'"); if ($step1 == 1){ $step2 = mysql_select_db($dbname); check_generic ($step2, "Opening database '$dbname'"); $step3 = parse_mysql_dump("pandoradb.sql"); check_generic ($step3, "Creating schema"); $step4 = parse_mysql_dump("pandoradb_data.sql"); check_generic ($step4, "Populating database"); $random_password = random_name (8); $step5 = mysql_query ("GRANT ALL PRIVILEGES ON $dbname.* to pandora@localhost IDENTIFIED BY '".$random_password."'"); mysql_query ("FLUSH PRIVILEGES"); check_generic ($step5, "Established privileges for user pandora
      password '$random_password'"); $step6 = is_writable("include"); check_generic ($step6, "Write permissions to save config file in './include'"); $cfgin = fopen ("include/config.inc.php","r"); $cfgout = fopen ($pandora_config,"w"); $config_contents = fread ($cfgin, filesize("include/config.inc.php")); $config_new = ''; $step7 = fputs ($cfgout, $config_new); $step7 = $step7 + fputs ($cfgout, $config_contents); if ($step7 > 0) $step7 = 1; fclose ($cfgin); fclose ($cfgout); chmod ($pandora_config, 0600); check_generic ($step7, "Created new config file at '".$pandora_config."'"); } } if (($step7 + $step6 + $step5 + $step4 + $step3 + $step2 + $step1) == 7) { $everything_ok = 1; } echo "

"; if ($everything_ok == 1) { echo "

"; } else { echo "
There was some problems. Installation is not completed.

Please correct failures before trying again. All database schemes created in this step have been dropped. Try to reload this page if you have a present Pandora FMS configuration.

"; if (mysql_error() != "") echo "
ERROR: ". mysql_error().".
"; mysql_query ("DROP DATABASE $dbname"); } echo "
Pandora FMS is an OpenSource Software project registered at SourceForge
"; } function install_step5() { echo "

Pandora FMS console installation wizard. Finished

Installation complete

You now must delete manually this installer ('install.php') file for security before trying to access to your Pandora FMS console.

Now you need to install Pandora FMS server before trying to monitor anything, please read documentation on how to install it.

Don't forget to check http://pandorafms.com for updates.


Click here to access to your Pandora FMS console



Pandora FMS is an OpenSource Software project registered at SourceForge
"; } // --------------- // Main page code // --------------- if (! isset($_GET["step"])){ install_step1(); } else { $step = $_GET["step"]; switch ($step) { case 2: install_step2(); break; case 3: install_step3(); break; case 4: install_step4(); break; case 5: install_step5(); break; } } ?>