"; 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_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)){ if (!$result = mysql_query($query)) 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 1.3 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 "
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 "
If you want to upgrade Pandora FMS 1.2 to 1.3 version, use the automated update wizard
"; echo "

Pandora FMS is a Free 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("curl","PHP Curl extension"); $res += check_extension("gd","PHP gd extension"); $res += check_extension("snmp","PHP SNMP extension"); $res += check_extension("session","PHP session extension"); $res += check_include("PEAR.php","PEAR PHP Library"); //$res += check_exists ("/usr/bin/pdflatex","PDF Latex in /usr/bin/pdflatex"); echo "

"; if ($res > 0) { echo "
You have some uncomplete 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 a Free 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 enviroment 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 http://localhost/pandora_console

Pandora FMS is a Free 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.

"; if (mysql_error() != "") echo "
ERROR: ". mysql_error().".
"; mysql_query ("DROP DATABASE $dbname"); } echo "
Pandora FMS is a Free 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.

Don't forget to check http://pandora.sourceforge.net for updates.

Click here to access to your Pandora FMS console



Pandora FMS is a Free 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; } } ?>