mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
* Security fix: unauthorized access Affects nginx users: Moved php files outside of public html directory (Apache was protected by .htaccess) Affects all users: Some files did not check for authentication and could disclose some info. Better checks before including files from user input * git mv html/includes/ includes/html git mv html/pages/ includes/html/
80 lines
2.2 KiB
PHP
80 lines
2.2 KiB
PHP
<?php
|
|
/**
|
|
* db-update.inc.php
|
|
*
|
|
* Run database update/deploy for installer
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
* @package LibreNMS
|
|
* @link http://librenms.org
|
|
* @copyright 2017 Tony Murray
|
|
* @author Tony Murray <murraytony@gmail.com>
|
|
*/
|
|
|
|
if (file_exists($config['install_dir'] . '/config.php')) {
|
|
echo("This should only be called during install");
|
|
exit;
|
|
}
|
|
$init_modules = ['nodb'];
|
|
require $config['install_dir'] . '/includes/init.php';
|
|
|
|
header("Content-type: text/plain");
|
|
header('X-Accel-Buffering: no');
|
|
|
|
$db_vars = array(
|
|
'dbhost' => 'host',
|
|
'dbuser' => 'username',
|
|
'dbpass' => 'password',
|
|
'dbname' => 'database',
|
|
'dbport' => 'port',
|
|
'dbsocket' => 'unix_socket',
|
|
);
|
|
|
|
\Config::set('database.connections.setup', [
|
|
"driver" => "mysql",
|
|
"host" => $_SESSION['dbhost'] ?: 'localhost',
|
|
"port" => $_SESSION['dbhost'] ?: 3306,
|
|
"database" => $_SESSION['dbname'] ?: 'librenms',
|
|
"username" => $_SESSION['dbuser'] ?: 'librenms',
|
|
"password" => $_SESSION['dbpass'] ?: '',
|
|
"charset" => "utf8",
|
|
"collation" => "utf8_unicode_ci",
|
|
"prefix" => "",
|
|
"strict" => true,
|
|
"engine" => null
|
|
]);
|
|
|
|
|
|
echo "Starting Update...\n";
|
|
try {
|
|
$ret = \Artisan::call('migrate', ['--seed' => true, '--force' => true, '--database' => 'setup']);
|
|
|
|
echo \Artisan::output();
|
|
|
|
if ($ret == 0 && \LibreNMS\DB\Schema::isCurrent()) {
|
|
echo "\n\nSuccess!";
|
|
} else {
|
|
echo "\n\nError!";
|
|
http_response_code(500);
|
|
}
|
|
} catch (Exception $e) {
|
|
echo $e->getMessage() . "\n\nError!";
|
|
http_response_code(500);
|
|
}
|
|
|
|
ob_end_flush();
|
|
flush();
|
|
session_write_close();
|