You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
			
		
		
		
		
			
		
			
				
					
					
						
							121 lines
						
					
					
						
							3.7 KiB
						
					
					
				
			
		
		
	
	
							121 lines
						
					
					
						
							3.7 KiB
						
					
					
				| <?php
 | |
| $failure = false;
 | |
| ?>
 | |
| <!DOCTYPE html>
 | |
| <html>
 | |
| <head>
 | |
| <title>Install</title>
 | |
| </head>
 | |
| <body>
 | |
| <h1>Installation check</h1>
 | |
| <?php
 | |
| 
 | |
| // PDO
 | |
| $ext = get_loaded_extensions();
 | |
| $msg = '<p>PDO database interface: <span style="color:%s">%s</span>'."</p>\n";
 | |
| $failure = ! in_array('PDO', $ext);
 | |
| $res = $failure ? ['red', 'Error'] : ['green', 'OK'];
 | |
| echo vsprintf($msg, $res);
 | |
| 
 | |
| // config file
 | |
| if (! $failure) {
 | |
|     $conffile = '../config.php';
 | |
|     $perms = fileperms($conffile);
 | |
|     if ($perms & 0x07) {
 | |
|         echo '<p>Config file world readable: <span style="color:red">Error</span>', "</p>\n";
 | |
|     }
 | |
|     if ($perms & 0x10) {
 | |
|         echo '<p>Config file writeable by webserver: <span style="color:red">Error</span>', "</p>\n";
 | |
|     }
 | |
|     $msg = '<p>Read config file: <span style="color:%s">%s</span>'."</p>\n";
 | |
|     $failure = (! include($conffile));
 | |
|     $res = $failure ? ['red', 'Error'] : ['green', 'OK'];
 | |
|     echo vsprintf($msg, $res);
 | |
| } else {
 | |
|     echo "<p>Configfile correct?</p>";
 | |
| }
 | |
| 
 | |
| // Database connection
 | |
| if (! $failure) {
 | |
|     try {
 | |
|         $dbh = new PDO("mysql:host=$config_mysql_host", $config_mysql_username, $config_mysql_password);
 | |
|         $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 | |
|     } catch (PDOException $e) {
 | |
|         $details = "<pre>" . $e->getMessage() . "</pre>\n";
 | |
|         $failure = true;
 | |
|     }
 | |
|     $msg = '<p>Database connection: <span style="color:%s">%s</span>'."</p>\n";
 | |
|     $res = $failure ? ['red', 'Error'] : ['green', 'OK'];
 | |
|     echo vsprintf($msg, $res);
 | |
|     if ($failure) {
 | |
|         echo $details;
 | |
|     }
 | |
| } else {
 | |
|     echo "<p>Database connection available?</p>\n";
 | |
| }
 | |
| 
 | |
| // Ipreg database exists
 | |
| if (! $failure) {
 | |
|     $sql = "SELECT SCHEMA_NAME FROM
 | |
|             INFORMATION_SCHEMA.SCHEMATA
 | |
|             WHERE SCHEMA_NAME=?";
 | |
|     $sth = $dbh->prepare($sql);
 | |
|     $sth->execute([$config_mysql_dbname]);
 | |
|     $failure = ! $sth->fetchColumn();
 | |
|     $msg = '<p>Database exists: <span style="color:%s">%s</span>'."</p>\n";
 | |
|     $res = $failure ? ['red', 'Error'] : ['green', 'OK'];
 | |
|     echo vsprintf($msg, $res);
 | |
|     $dbh->query("USE $config_mysql_dbname");
 | |
| } else {
 | |
|     echo "<p>Database available?</p>\n";
 | |
| }
 | |
| ?>
 | |
| 
 | |
| <h2>Rights</h2>
 | |
| <?php
 | |
| // Admin-user?
 | |
| if (! $failure) {
 | |
|     $admincount = 0;
 | |
| 
 | |
|     // Admin count
 | |
|     $sql = "SELECT user_id FROM user WHERE FIND_IN_SET('admin',user_role)>0";
 | |
|     $sth = $dbh->query($sql);
 | |
|     $adminlist = $sth->fetchAll(PDO::FETCH_ASSOC);
 | |
|     $admincount = count($adminlist);
 | |
|     if ($admincount == 0) {
 | |
|         echo '<p>No admin user exists: <span style="color:red">Error</span>'."</p>\n";
 | |
|     }
 | |
| 
 | |
|     // Default admin
 | |
|     $sql = "SELECT user_pass FROM user WHERE user_name='admin' AND FIND_IN_SET('admin',user_role)>0";
 | |
|     $sth = $dbh->query($sql);
 | |
|     if ($rec = $sth->fetchColumn()) {
 | |
|         // Check default password
 | |
|         if ($rec == '$2y$10$HTs0lSaFrfr.q4Gmy5zWfeDg3jhYZkqEGZEnDkMiHZ641nso38mt6') {
 | |
|            echo '<p>Password for default admin has not been changed: <span style="color:yellow">Warnung</span>'."</p>\n";
 | |
|         } else {
 | |
|            echo '<p>Default admin exists: <span style="color:green">OK</span>'."</p>\n";
 | |
|         }
 | |
|     } else {
 | |
|         echo "<p>Default admin does not exist.</p>\n";
 | |
|         if ($admincount > 0) {
 | |
|             echo '<p>There are more admin accounts: <span style="color:green">OK</span>', "</p>\n";
 | |
|         }
 | |
|     }
 | |
| } else {
 | |
|     echo "<p>Administrative user available?</p>\n";
 | |
| }
 | |
| 
 | |
| // Smarty
 | |
| $compiledir = '../tpl_c';
 | |
| $failure = ! is_writeable($compiledir);
 | |
| $msg = '<p>Smarty compile directory writable: <span style="color:%s">%s</span>'."</p>\n";
 | |
| $res = $failure ? ['red', 'Error'] : ['green', 'OK'];
 | |
| echo vsprintf($msg, $res);
 | |
| 
 | |
| ?>
 | |
| <h2>Summary</h2>
 | |
| <p>If everything here checks ok the installation directory <tt>install</tt>
 | |
| should be removed.</p>
 | |
| </body>
 | |
| </html>
 | |
| 
 |