Fix 30
This commit is contained in:
@@ -2,13 +2,37 @@
|
||||
|
||||
function installpostgre()
|
||||
{
|
||||
// Generate a secure random password (20 chars, URL-safe)
|
||||
if (function_exists('random_bytes')) {
|
||||
$bytes = random_bytes(16);
|
||||
} else {
|
||||
$bytes = openssl_random_pseudo_bytes(16);
|
||||
$dir = '/opt/DragonCore';
|
||||
$configPath = $dir . '/config.php';
|
||||
|
||||
$password = null;
|
||||
$db_user = 'dragoncore2'; // default user
|
||||
$db_name = 'dragoncore'; // default db name
|
||||
|
||||
// If config already exists, load existing password (and user if needed)
|
||||
if (file_exists($configPath)) {
|
||||
include $configPath; // defines $db_pass, $db_user, $db_name, etc.
|
||||
|
||||
if (isset($db_pass)) {
|
||||
$password = $db_pass;
|
||||
}
|
||||
if (isset($db_user)) {
|
||||
$db_user = $db_user;
|
||||
}
|
||||
if (isset($db_name)) {
|
||||
$db_name = $db_name;
|
||||
}
|
||||
}
|
||||
|
||||
// If no password loaded from config, generate a new one
|
||||
if ($password === null) {
|
||||
if (function_exists('random_bytes')) {
|
||||
$bytes = random_bytes(16);
|
||||
} else {
|
||||
$bytes = openssl_random_pseudo_bytes(16);
|
||||
}
|
||||
$password = substr(str_replace(['/', '+', '='], '', base64_encode($bytes)), 0, 20);
|
||||
}
|
||||
$password = substr(str_replace(['/', '+', '='], '', base64_encode($bytes)), 0, 20);
|
||||
|
||||
echo 'sudo apt update' . "\n";
|
||||
echo 'sudo apt install postgresql postgresql-contrib -y' . "\n";
|
||||
@@ -16,14 +40,19 @@ function installpostgre()
|
||||
#echo 'sudo cp /etc/postgresql/' . $pgVersion . '/main/pg_hba.conf /etc/postgresql/' . $pgVersion . '/main/pg_hba.conf.bak' . "\n";
|
||||
#echo 'sudo sh -c "echo \'host all all 127.0.0.1/32 md5\' > /etc/postgresql/' . $pgVersion . '/main/pg_hba.conf"' . "\n";
|
||||
echo 'sudo systemctl restart postgresql' . "\n";
|
||||
echo 'sudo -u postgres psql -c "CREATE DATABASE dragoncore;"' . "\n";
|
||||
echo 'sudo -u postgres psql -c "CREATE USER dragoncore2 WITH PASSWORD \'' . $password . '\';"' . "\n";
|
||||
echo 'sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE dragoncore TO dragoncore;"' . "\n";
|
||||
echo 'sudo -u postgres psql -c "GRANT USAGE, CREATE ON SCHEMA public TO dragoncore;"' . "\n";
|
||||
echo 'sudo -u postgres psql -c "CREATE DATABASE ' . $db_name . ';"' . "\n";
|
||||
echo 'sudo -u postgres psql -c "CREATE USER ' . $db_user . ' WITH PASSWORD \'' . $password . '\';"' . "\n";
|
||||
echo 'sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE ' . $db_name . ' TO ' . $db_user . ';"' . "\n";
|
||||
echo 'sudo -u postgres psql -c "GRANT USAGE, CREATE ON SCHEMA public TO ' . $db_user . ';"' . "\n";
|
||||
echo 'sudo systemctl restart postgresql' . "\n";
|
||||
|
||||
// If config already existed, don't overwrite it
|
||||
if (file_exists($configPath)) {
|
||||
echo "Config file already exists at {$configPath}, not overwriting.\n";
|
||||
return;
|
||||
}
|
||||
|
||||
// Ensure /opt/DragonCore exists
|
||||
$dir = '/opt/DragonCore';
|
||||
if (!is_dir($dir)) {
|
||||
if (!mkdir($dir, 0755, true) && !is_dir($dir)) {
|
||||
fwrite(STDERR, "Failed to create directory: $dir\n");
|
||||
@@ -36,12 +65,11 @@ function installpostgre()
|
||||
<?php
|
||||
\$db_host = '127.0.0.1';
|
||||
\$db_port = '5432';
|
||||
\$db_name = 'dragoncore';
|
||||
\$db_user = 'dragoncore2';
|
||||
\$db_name = '{$db_name}';
|
||||
\$db_user = '{$db_user}';
|
||||
\$db_pass = '{$password}';
|
||||
PHP;
|
||||
|
||||
$configPath = $dir . '/config.php';
|
||||
if (file_put_contents($configPath, $config) === false) {
|
||||
fwrite(STDERR, "Failed to write config file at {$configPath}\n");
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user