Improve database host detection for deployment
This commit is contained in:
+40
-9
@@ -1,15 +1,46 @@
|
|||||||
<?php
|
<?php
|
||||||
$host = getenv('DB_HOST') ?: 'localhost';
|
mysqli_report(MYSQLI_REPORT_OFF);
|
||||||
$user = getenv('DB_USER') ?: 'root';
|
|
||||||
$pass = getenv('DB_PASSWORD');
|
|
||||||
$pass = ($pass === false) ? '' : $pass;
|
|
||||||
$db = getenv('DB_NAME_01') ?: getenv('DB_NAME_SPBU') ?: getenv('DB_NAME') ?: 'spbu_db';
|
|
||||||
$port = (int)(getenv('DB_PORT') ?: 3306);
|
|
||||||
|
|
||||||
$conn = new mysqli($host, $user, $pass, $db, $port);
|
function env_value($keys, $default = null) {
|
||||||
|
foreach ($keys as $key) {
|
||||||
|
$value = getenv($key);
|
||||||
|
if ($value !== false && $value !== '') {
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
|
||||||
if ($conn->connect_error) {
|
$explicitHost = env_value(['DB_HOST', 'MYSQL_HOST', 'MARIADB_HOST', 'DATABASE_HOST']);
|
||||||
die("Koneksi database gagal: " . $conn->connect_error);
|
$user = env_value(['DB_USER', 'MYSQL_USER', 'MARIADB_USER', 'DATABASE_USER'], 'root');
|
||||||
|
$pass = env_value(['DB_PASSWORD', 'MYSQL_PASSWORD', 'MARIADB_PASSWORD', 'DATABASE_PASSWORD'], '');
|
||||||
|
$db = env_value(['DB_NAME_01', 'DB_NAME_SPBU', 'DB_NAME', 'MYSQL_DATABASE', 'MARIADB_DATABASE', 'DATABASE_NAME'], 'spbu_db');
|
||||||
|
$port = (int) env_value(['DB_PORT', 'MYSQL_PORT', 'MARIADB_PORT', 'DATABASE_PORT'], 3306);
|
||||||
|
|
||||||
|
$hosts = $explicitHost ? [$explicitHost] : [];
|
||||||
|
if (file_exists('/.dockerenv')) {
|
||||||
|
$hosts = array_merge($hosts, ['mysql', 'mariadb', 'database', 'db']);
|
||||||
|
}
|
||||||
|
$hosts[] = 'localhost';
|
||||||
|
$hosts[] = '127.0.0.1';
|
||||||
|
$hosts = array_values(array_unique($hosts));
|
||||||
|
|
||||||
|
$conn = null;
|
||||||
|
$lastError = '';
|
||||||
|
|
||||||
|
foreach ($hosts as $host) {
|
||||||
|
$candidate = mysqli_init();
|
||||||
|
$candidate->options(MYSQLI_OPT_CONNECT_TIMEOUT, 3);
|
||||||
|
if (@$candidate->real_connect($host, $user, $pass, $db, $port)) {
|
||||||
|
$conn = $candidate;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$lastError = $candidate->connect_error ?: mysqli_connect_error();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$conn) {
|
||||||
|
http_response_code(500);
|
||||||
|
die("Koneksi database gagal. Host dicoba: " . implode(', ', $hosts) . ". Error: " . $lastError);
|
||||||
}
|
}
|
||||||
|
|
||||||
$conn->set_charset("utf8mb4");
|
$conn->set_charset("utf8mb4");
|
||||||
|
|||||||
+40
-9
@@ -1,15 +1,46 @@
|
|||||||
<?php
|
<?php
|
||||||
$host = getenv('DB_HOST') ?: 'localhost';
|
mysqli_report(MYSQLI_REPORT_OFF);
|
||||||
$user = getenv('DB_USER') ?: 'root';
|
|
||||||
$pass = getenv('DB_PASSWORD');
|
|
||||||
$pass = ($pass === false) ? '' : $pass;
|
|
||||||
$db = getenv('DB_NAME_02') ?: getenv('DB_NAME_WEBGIS2') ?: getenv('DB_NAME') ?: 'webgis2';
|
|
||||||
$port = (int)(getenv('DB_PORT') ?: 3306);
|
|
||||||
|
|
||||||
$conn = new mysqli($host, $user, $pass, $db, $port);
|
function env_value($keys, $default = null) {
|
||||||
|
foreach ($keys as $key) {
|
||||||
|
$value = getenv($key);
|
||||||
|
if ($value !== false && $value !== '') {
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
|
||||||
if ($conn->connect_error) {
|
$explicitHost = env_value(['DB_HOST', 'MYSQL_HOST', 'MARIADB_HOST', 'DATABASE_HOST']);
|
||||||
die("Koneksi database gagal: " . $conn->connect_error);
|
$user = env_value(['DB_USER', 'MYSQL_USER', 'MARIADB_USER', 'DATABASE_USER'], 'root');
|
||||||
|
$pass = env_value(['DB_PASSWORD', 'MYSQL_PASSWORD', 'MARIADB_PASSWORD', 'DATABASE_PASSWORD'], '');
|
||||||
|
$db = env_value(['DB_NAME_02', 'DB_NAME_WEBGIS2', 'DB_NAME', 'MYSQL_DATABASE', 'MARIADB_DATABASE', 'DATABASE_NAME'], 'webgis2');
|
||||||
|
$port = (int) env_value(['DB_PORT', 'MYSQL_PORT', 'MARIADB_PORT', 'DATABASE_PORT'], 3306);
|
||||||
|
|
||||||
|
$hosts = $explicitHost ? [$explicitHost] : [];
|
||||||
|
if (file_exists('/.dockerenv')) {
|
||||||
|
$hosts = array_merge($hosts, ['mysql', 'mariadb', 'database', 'db']);
|
||||||
|
}
|
||||||
|
$hosts[] = 'localhost';
|
||||||
|
$hosts[] = '127.0.0.1';
|
||||||
|
$hosts = array_values(array_unique($hosts));
|
||||||
|
|
||||||
|
$conn = null;
|
||||||
|
$lastError = '';
|
||||||
|
|
||||||
|
foreach ($hosts as $host) {
|
||||||
|
$candidate = mysqli_init();
|
||||||
|
$candidate->options(MYSQLI_OPT_CONNECT_TIMEOUT, 3);
|
||||||
|
if (@$candidate->real_connect($host, $user, $pass, $db, $port)) {
|
||||||
|
$conn = $candidate;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$lastError = $candidate->connect_error ?: mysqli_connect_error();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$conn) {
|
||||||
|
http_response_code(500);
|
||||||
|
die("Koneksi database gagal. Host dicoba: " . implode(', ', $hosts) . ". Error: " . $lastError);
|
||||||
}
|
}
|
||||||
|
|
||||||
$conn->set_charset("utf8mb4");
|
$conn->set_charset("utf8mb4");
|
||||||
|
|||||||
+40
-9
@@ -1,15 +1,46 @@
|
|||||||
<?php
|
<?php
|
||||||
$host = getenv('DB_HOST') ?: 'localhost';
|
mysqli_report(MYSQLI_REPORT_OFF);
|
||||||
$user = getenv('DB_USER') ?: 'root';
|
|
||||||
$pass = getenv('DB_PASSWORD');
|
|
||||||
$pass = ($pass === false) ? '' : $pass;
|
|
||||||
$db = getenv('DB_NAME_04') ?: getenv('DB_NAME_SPBU') ?: getenv('DB_NAME') ?: 'spbu_db';
|
|
||||||
$port = (int)(getenv('DB_PORT') ?: 3306);
|
|
||||||
|
|
||||||
$conn = new mysqli($host, $user, $pass, $db, $port);
|
function env_value($keys, $default = null) {
|
||||||
|
foreach ($keys as $key) {
|
||||||
|
$value = getenv($key);
|
||||||
|
if ($value !== false && $value !== '') {
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
|
||||||
if ($conn->connect_error) {
|
$explicitHost = env_value(['DB_HOST', 'MYSQL_HOST', 'MARIADB_HOST', 'DATABASE_HOST']);
|
||||||
die("Koneksi database gagal: " . $conn->connect_error);
|
$user = env_value(['DB_USER', 'MYSQL_USER', 'MARIADB_USER', 'DATABASE_USER'], 'root');
|
||||||
|
$pass = env_value(['DB_PASSWORD', 'MYSQL_PASSWORD', 'MARIADB_PASSWORD', 'DATABASE_PASSWORD'], '');
|
||||||
|
$db = env_value(['DB_NAME_04', 'DB_NAME_SPBU', 'DB_NAME', 'MYSQL_DATABASE', 'MARIADB_DATABASE', 'DATABASE_NAME'], 'spbu_db');
|
||||||
|
$port = (int) env_value(['DB_PORT', 'MYSQL_PORT', 'MARIADB_PORT', 'DATABASE_PORT'], 3306);
|
||||||
|
|
||||||
|
$hosts = $explicitHost ? [$explicitHost] : [];
|
||||||
|
if (file_exists('/.dockerenv')) {
|
||||||
|
$hosts = array_merge($hosts, ['mysql', 'mariadb', 'database', 'db']);
|
||||||
|
}
|
||||||
|
$hosts[] = 'localhost';
|
||||||
|
$hosts[] = '127.0.0.1';
|
||||||
|
$hosts = array_values(array_unique($hosts));
|
||||||
|
|
||||||
|
$conn = null;
|
||||||
|
$lastError = '';
|
||||||
|
|
||||||
|
foreach ($hosts as $host) {
|
||||||
|
$candidate = mysqli_init();
|
||||||
|
$candidate->options(MYSQLI_OPT_CONNECT_TIMEOUT, 3);
|
||||||
|
if (@$candidate->real_connect($host, $user, $pass, $db, $port)) {
|
||||||
|
$conn = $candidate;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$lastError = $candidate->connect_error ?: mysqli_connect_error();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$conn) {
|
||||||
|
http_response_code(500);
|
||||||
|
die("Koneksi database gagal. Host dicoba: " . implode(', ', $hosts) . ". Error: " . $lastError);
|
||||||
}
|
}
|
||||||
|
|
||||||
$conn->set_charset("utf8mb4");
|
$conn->set_charset("utf8mb4");
|
||||||
|
|||||||
+42
-9
@@ -1,16 +1,49 @@
|
|||||||
<?php
|
<?php
|
||||||
$host = getenv('DB_HOST') ?: 'localhost';
|
mysqli_report(MYSQLI_REPORT_OFF);
|
||||||
$user = getenv('DB_USER') ?: 'root';
|
|
||||||
$pass = getenv('DB_PASSWORD');
|
|
||||||
$pass = ($pass === false) ? '' : $pass;
|
|
||||||
$db = getenv('DB_NAME_05') ?: getenv('DB_NAME_UAS') ?: getenv('DB_NAME') ?: 'webgis_uas';
|
|
||||||
$port = (int)(getenv('DB_PORT') ?: 3306);
|
|
||||||
|
|
||||||
$conn = new mysqli($host, $user, $pass, $db, $port);
|
function env_value($keys, $default = null) {
|
||||||
|
foreach ($keys as $key) {
|
||||||
|
$value = getenv($key);
|
||||||
|
if ($value !== false && $value !== '') {
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
|
||||||
if ($conn->connect_error) {
|
$explicitHost = env_value(['DB_HOST', 'MYSQL_HOST', 'MARIADB_HOST', 'DATABASE_HOST']);
|
||||||
|
$user = env_value(['DB_USER', 'MYSQL_USER', 'MARIADB_USER', 'DATABASE_USER'], 'root');
|
||||||
|
$pass = env_value(['DB_PASSWORD', 'MYSQL_PASSWORD', 'MARIADB_PASSWORD', 'DATABASE_PASSWORD'], '');
|
||||||
|
$db = env_value(['DB_NAME_05', 'DB_NAME_UAS', 'DB_NAME', 'MYSQL_DATABASE', 'MARIADB_DATABASE', 'DATABASE_NAME'], 'webgis_uas');
|
||||||
|
$port = (int) env_value(['DB_PORT', 'MYSQL_PORT', 'MARIADB_PORT', 'DATABASE_PORT'], 3306);
|
||||||
|
|
||||||
|
$hosts = $explicitHost ? [$explicitHost] : [];
|
||||||
|
if (file_exists('/.dockerenv')) {
|
||||||
|
$hosts = array_merge($hosts, ['mysql', 'mariadb', 'database', 'db']);
|
||||||
|
}
|
||||||
|
$hosts[] = 'localhost';
|
||||||
|
$hosts[] = '127.0.0.1';
|
||||||
|
$hosts = array_values(array_unique($hosts));
|
||||||
|
|
||||||
|
$conn = null;
|
||||||
|
$lastError = '';
|
||||||
|
|
||||||
|
foreach ($hosts as $host) {
|
||||||
|
$candidate = mysqli_init();
|
||||||
|
$candidate->options(MYSQLI_OPT_CONNECT_TIMEOUT, 3);
|
||||||
|
if (@$candidate->real_connect($host, $user, $pass, $db, $port)) {
|
||||||
|
$conn = $candidate;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$lastError = $candidate->connect_error ?: mysqli_connect_error();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$conn) {
|
||||||
http_response_code(500);
|
http_response_code(500);
|
||||||
die(json_encode(["error" => "Koneksi database gagal: " . $conn->connect_error]));
|
die(json_encode([
|
||||||
|
"status" => "error",
|
||||||
|
"msg" => "Koneksi database gagal. Host dicoba: " . implode(', ', $hosts) . ". Error: " . $lastError
|
||||||
|
]));
|
||||||
}
|
}
|
||||||
|
|
||||||
$conn->set_charset("utf8mb4");
|
$conn->set_charset("utf8mb4");
|
||||||
|
|||||||
Reference in New Issue
Block a user