<?php
/**
* This diagnostic page helps you to check your setup.
* @copyright Copyright (c) 2014-2016 Benjamin BALET
* @license http://opensource.org/licenses/AGPL-3.0 AGPL-3.0
* @link https://github.com/bbalet/jorani
* @since 0.3.0
*/
define('BASEPATH','.');//Make this script works with nginx
if (function_exists('apache_get_modules')) {
$modules = apache_get_modules();
$mod_rewrite = in_array('mod_rewrite', $modules);
} else {
$mod_rewrite = getenv('HTTP_MOD_REWRITE')=='On' ? true : false ;
}
$allow_overwrite = getenv('ALLOW_OVERWRITE');
$mod_rewrite = getenv('HTTP_MOD_REWRITE');
$server_software = getenv('SERVER_SOFTWARE');
$mod_gzip = getenv('HTTP_MOD_GZIP');
if ($mod_rewrite == "") $mod_rewrite = '<b>.htaccess not visited</b>';
if ($allow_overwrite == "") $allow_overwrite = '<b>Off</b>';
$tmz = @date_default_timezone_get();
//Check if we can access to the configuration file
$pathConfigFile = realpath(join(DIRECTORY_SEPARATOR, array('application', 'config', 'database.php')));
$configFileExists = file_exists($pathConfigFile);
$dbConnError = TRUE;
$dbSelectDbError = TRUE;
$dbQueryError = TRUE;
$dbProcsError = TRUE;
if ($configFileExists) {
include $pathConfigFile;
//Try to connect to database
$dbConn = new mysqli($db['default']['hostname'], $db['default']['username'], $db['default']['password']);
$dbConnError = mysqli_connect_errno() ? TRUE : FALSE;
if (!$dbConnError) {
$dbConn->select_db($db['default']['database']);
$dbSelectDbError = ($dbConn->errno > 0) ? TRUE : FALSE;
//Try to get the signature of the schema
if (!$dbSelectDbError) {
//Examine organization structure
$resultOrg = $dbConn->query("SELECT id FROM organization WHERE parent_id=-1");
$rowOrg = $resultOrg->fetch_assoc();
$resultOrg->free();;
//Try to use a procedure in order to check the install script
//We don't know if the user has access to information schema
//So we try to call one of the procedures with a parameter returning a small set of results
$dbConn->query("SELECT GetParentIDByID(0) AS result");
$dbProcsError = ($dbConn->errno > 0) ? TRUE : FALSE;
$sql = "SELECT TABLE_NAME, MD5(GROUP_CONCAT(CONCAT(TABLE_NAME, COLUMN_NAME, COALESCE(COLUMN_DEFAULT, ''), IS_NULLABLE, COLUMN_TYPE, COALESCE(COLLATION_NAME, '')) SEPARATOR ', ')) AS signature"
. " FROM information_schema.columns"
. " WHERE table_schema = DATABASE()"
. " GROUP BY TABLE_NAME"
. " ORDER BY TABLE_NAME";
$stmt = $dbConn->prepare($sql);
$dbQueryError = ($dbConn->errno > 0) ? TRUE : FALSE;
if (!$dbQueryError) {
$stmt->execute();
$dbQueryError = ($dbConn->errno > 0) ? TRUE : FALSE;
}
if (!$dbQueryError) {
$stmt->bind_result($table, $signature);
$dbQueryError = ($dbConn->errno > 0) ? TRUE : FALSE;
}
}
}
}
?>
<html>
<head>
<title>Jorani Requirements</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta charset="UTF-8">
<link rel="icon" type="image/x-icon" href="favicon.ico" sizes="32x32">
<link href="assets/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<script type="text/javascript" src="assets/js/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
function export2csv() {
var content = "";
content += "Table;Description;Value\n";
$("#tblServer tr").each(function() {
$this = $(this)
content += "Server;" + $.trim($(this).find("td:eq(0)").text())
+ ";" + $(this).find("td:eq(1)").text() + "\n";
});
$("#tblDatabase tr").each(function() {
$this = $(this)
content += "Database;" + $.trim($(this).find("td:eq(0)").text())
+ ";" + $(this).find("td:eq(1)").text() + "\n";
});
$("#tblSchema tr").each(function() {
$this = $(this)
content += "Schema;" + $.trim($(this).find("td:eq(0)").text())
+ ";" + $(this).find("td:eq(1)").text() + "\n";
});
// Build a data URI:
uri = "data:text/csv;charset=utf-8," + encodeURIComponent(content);
location.href = uri;
}
</script>
</head>
<body>
<div class="container-fluid">
<ul class="nav nav-pills">
<li class="active"><a href="#">Requirements</a></li>
<li><a href="testmail.php">Email</a></li>
<li><a href="testldap.php">LDAP</a></li>
<li><a href="testssl.php">SSL</a></li>
<li><a href="testoauth2.php">OAuth2</a></li>
<li><a href="opcache.php">Opcache</a></li>
</ul>
<h1>Jorani Requirements</h1>
<noscript>
Javascript is disabled. Jorani requires Javascript to be enabled.
</noscript>
<button class="btn btn-primary" onclick="export2csv();"><i class="icon-download-alt icon-white"></i> Export to a CSV file</button>
<h2>Web Server</h2>
<table class="table table-bordered table-hover table-condensed">
<thead>
<tr>
<th>Requirement</th>
<th>Value / Description</th>
</tr>
</thead>
<tbody id="tblServer">
<tr><td><i class="icon-info-sign"></i> Server software</td><td><?php echo $server_software; ?></td></tr>
<tr><td><?php if (strtolower($allow_overwrite) == "on") {?><i class="icon-ok-sign"></i><?php } else { ?><i class="icon-remove-sign"></i><?php } ?>
Allow overwrite (.htaccess files)</td><td><?php echo $allow_overwrite; ?> (used for cool URLs) Ignore this message if you are running something else than Apache.</td></tr>
<tr><td><?php if (strtolower($mod_rewrite) == "on") {?><i class="icon-ok-sign"></i><?php } else { ?><i class="icon-remove-sign"></i><?php } ?>
Apache module rewrite (mod_rewrite)</td><td><?php echo $mod_rewrite; ?> (used for cool URLs) Ignore this message if you are running something else than Apache.</td></tr>
<tr><td><?php if (strtolower($mod_gzip) == "on") {?><i class="icon-ok-sign"></i><?php } else { ?><i class="icon-remove-sign"></i><?php } ?>
Apache module gzip (mod_gzip)</td><td><?php echo $mod_gzip; ?> Improve response times.</td></tr>
<?php if (version_compare(PHP_VERSION, '5.3.0') >= 0) {?>
<tr><td><i class="icon-ok-sign"></i> PHP 5.3+</td>
<?php } else { ?>
<tr><td><i class="icon-remove-sign"></i> Old PHP version</td>
<?php } ?><td>Ignore this message if you are running an exotic PHP runtime</td></tr>
<?php if (defined('HHVM_VERSION')) {?>
<tr><td><i class="icon-info-sign"></i> HHVM</td><td><?php echo HHVM_VERSION; ?></td></tr>
<?php } else { ?>
<tr><td><i class="icon-info-sign"></i> PHP</td><td><?php echo PHP_VERSION; ?></td></tr>
<?php } ?>
<?php if ($tmz != 'UTC') {?>
<tr><td><i class="icon-ok-sign"></i> Timezone defined</td>
<?php } else { ?>
<tr><td><i class="icon-remove-sign"></i> Timezone undefined</td>
<?php } ?><td>If error, please check date.timezone into PHP.ini.</td></tr>
<?php if (function_exists('mb_strimwidth')) {?>
<tr><td><i class="icon-ok-sign"></i> <code>mb_strimwidth</code> function exists</td>
<?php } else { ?>
<tr><td><i class="icon-remove-sign"></i> <code>mb_strimwidth</code> function doesn't exist</td>
<?php } ?><td>PHP must be compiled with <a href="http://php.net/manual/en/mbstring.installation.php" target="_blank">multibyte string support<a>.</td></tr>
<?php if (extension_loaded('mcrypt')) {?>
<tr><td><i class="icon-ok-sign"></i> mcrypt is LOADED</td>
<?php } else { ?>
<tr><td><i class="icon-remove-sign"></i> mcrypt IS NOT LOADED.</td>
<?php } ?><td>PHP Extension mcrypt is required for some security features.</td></tr>
<?php if (extension_loaded('Zend OPcache')) {?>
<tr><td><i class="icon-ok-sign"></i> OPcache is LOADED</td>
<?php } else { ?>
<tr><td><i class="icon-exclamation-sign"></i> OPcache IS NOT LOADED.</td>
<?php } ?><td>Please consider activating OPcache for the best performances.</td></tr>
<?php if (extension_loaded('openssl')) {?>
<tr><td><i class="icon-ok-sign"></i> openssl is LOADED</td>
<?php } else { ?>
<tr><td><i class="icon-exclamation-sign"></i> openssl IS NOT LOADED.</td>
<?php } ?><td>PHP Extension openssl speeds up the log in page.</td></tr>
<?php if (extension_loaded('curl')) {?>
<tr><td><i class="icon-ok-sign"></i> curl is LOADED</td>
<?php } else { ?>
<tr><td><i class="icon-exclamation-sign"></i> curl IS NOT LOADED.</td>
<?php } ?><td>PHP Extension curl is needed for OAuth2 authentication.</td></tr>
<?php if (extension_loaded('ldap')) {?>
<tr><td><i class="icon-ok-sign"></i> ldap is LOADED</td>
<?php } else { ?>
<tr><td><i class="icon-exclamation-sign"></i> ldap IS NOT LOADED</td>
<?php } ?><td>PHP Extension ldap is optional and allows you to use LDAP for authentication.</td></tr>
<?php if (extension_loaded('zip')) {?>
<tr><td><i class="icon-ok-sign"></i> zip is LOADED</td>
<?php } else { ?>
<tr><td><i class="icon-exclamation-sign"></i> zip IS NOT LOADED</td>
<?php } ?><td>PHP Extension zip allows you to use the export to Excel feature.</td></tr>
<?php if (extension_loaded('xml')) {?>
<tr><td><i class="icon-ok-sign"></i> xml is LOADED</td>
<?php } else { ?>
<tr><td><i class="icon-exclamation-sign"></i> xml IS NOT LOADED</td>
<?php } ?><td>PHP Extension xml allows you to use the export to Excel feature.</td></tr>
<?php if (extension_loaded('gd')) {?>
<tr><td><i class="icon-ok-sign"></i> gd is LOADED</td>
<?php } else { ?>
<tr><td><i class="icon-exclamation-sign"></i> gd IS NOT LOADED</td>
<?php } ?><td>PHP Extension gd2 allows you to use the export to Excel feature.</td></tr>
<?php if (extension_loaded('mysqli')) {?>
<tr><td><i class="icon-ok-sign"></i> mysqli is LOADED</td>
<?php } else { ?>
<tr><td><i class="icon-exclamation-sign"></i> mysqli IS NOT LOADED</td>
<?php } ?><td>mysqli is the recommended database driver.</td></tr>
</tbody>
</table>
<h2>Additional configuration</h2>
<p>You can test the following settings, but you need to edit the corresponding PHP scripts :</p>
<ul>
<li><a href="testssl.php" target="_blank">SSL Configuration and Utility.</a></li>
<li><a href="testoauth2.php" target="_blank">OAuth2 Settings.</a></li>
<li><a href="testmail.php" target="_blank">E-mail Settings.</a></li>
<li><a href="testldap.php" target="_blank">LDAP Settings.</a></li>
<li><a href="opcache.php" target="_blank">OPCache Tester.</a></li>
</ul>
<h2>Database</h2>
<table class="table table-bordered table-hover table-condensed">
<thead>
<tr>
<th>Requirement</th>
<th>Value / Description</th>
</tr>
</thead>
<tbody id="tblDatabase">
<?php if ($configFileExists) { ?><tr><td><i class="icon-ok-sign"></i> Configuration file</td><td>Found</td></tr>
<?php } else { ?><tr><td><i class="icon-remove-sign"></i> Configuration file</td><td>Not Found</td></tr>
<?php } ?>
<?php if (!$dbConnError) { ?><tr><td><i class="icon-ok-sign"></i> Database connection</td><td>OK</td></tr>
<?php } else { ?><tr><td><i class="icon-remove-sign"></i> Database connection</td><td>Error</td></tr>
<?php } ?>
<?php if (!$dbSelectDbError) { ?><tr><td><i class="icon-ok-sign"></i> Database name</td><td>Found</td></tr>
<?php } else { ?><tr><td><i class="icon-remove-sign"></i> Database name</td><td>Doesn't exist</td></tr>
<?php } ?>
<?php if (!$dbQueryError) { ?><tr><td><i class="icon-ok-sign"></i> Database query</td><td>OK</td></tr>
<?php } else { ?><tr><td><i class="icon-remove-sign"></i> Database query</td><td>Error</td></tr>
<?php } ?>
<?php if (!$dbProcsError) { ?><tr><td><i class="icon-ok-sign"></i> Database procedures</td><td>OK</td></tr>
<?php } else { ?><tr><td><i class="icon-remove-sign"></i> Database procedures</td><td>Error. Please check if your hosting company allows custom procedures (e.g. <a href="https://techtavern.wordpress.com/2013/06/17/mysql-triggers-and-amazon-rds/" target="_blank">Amazon RDS</a>).</td></tr>
<?php } ?>
<?php if (is_null($rowOrg)) { ?><tr><td><i class="icon-remove-sign"></i> Organization structure</td><td>No root entity was found.</td></tr>
<?php } else { ?>
<?php if ($rowOrg['id'] != 0) { ?><tr><td><i class="icon-remove-sign"></i> Organization structure</td><td>The root entity must be equal to zero. To fix a problem of backup/restore, please execute this query: <br />
<code>UPDATE `organization` SET `organization`.`id` = 0 WHERE `parent_id` = -1</code></td></tr>
<?php } else { ?><tr><td><i class="icon-ok-sign"></i> Organization structure</td><td>OK</td></tr>
<?php }
}?>
</tbody>
</table>
<h2>Schema</h2>
<table class="table table-bordered table-hover table-condensed">
<thead>
<tr>
<th>Table</th>
<th>Signature</th>
</tr>
</thead>
<tbody id="tblSchema">
<?php if (!$dbQueryError) {
while ($stmt->fetch()) { ?>
<tr><td><i class="icon-info-sign"></i> <?php echo $table; ?></td><td><?php echo $signature; ?></td></tr>
<?php }
$stmt->close();
if (!$dbConnError) $dbConn->close();
} else { ?>
<tr><td colspan="2"><i>Impossible to query database</i></td></tr>
<?php } ?>
</tbody>
</table>
</div>
</body>
</html>
--
You received this message because you are subscribed to a topic in the Google Groups "jorani" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jorani/JHZKGBwyhAY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to jorani+un...@googlegroups.com.
To post to this group, send email to jor...@googlegroups.com.
Visit this group at https://groups.google.com/group/jorani.
To view this discussion on the web visit https://groups.google.com/d/msgid/jorani/0dc87ce8-ba44-4c96-84f3-fff3473e0c8a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "jorani" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jorani+un...@googlegroups.com.
To post to this group, send email to jor...@googlegroups.com.
Visit this group at https://groups.google.com/group/jorani.
To view this discussion on the web visit https://groups.google.com/d/msgid/jorani/bc99916e-c766-4b87-ae95-5ed7b3a3dea5%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jorani/5e75f32c-5d85-4d70-8ad9-f835e9d9d890%40googlegroups.com.
/sql/lms.sql script.application/config/config.php $_SERVER['HTTPS'] = 'on';Now I'm stuck here, I don't know how to run these scripts, and it makes me so frustrated. I also tried to check the documentation page and the YouTube channel again, but it is focused on how to set the tool after the installation.