Prepare WebGIS project for Docker deployment
This commit is contained in:
+29
-6
@@ -1,15 +1,38 @@
|
||||
<?php
|
||||
$host = getenv('DB_HOST') ?: '127.0.0.1';
|
||||
$user = getenv('DB_USER') ?: 'root';
|
||||
$pass = getenv('DB_PASSWORD') !== false ? getenv('DB_PASSWORD') : '';
|
||||
$db = getenv('DB_NAME') ?: 'webgis_db';
|
||||
mysqli_report(MYSQLI_REPORT_OFF);
|
||||
|
||||
$conn = mysqli_connect($host, $user, $pass, $db);
|
||||
function env_first(array $keys, $default = '') {
|
||||
foreach ($keys as $key) {
|
||||
$value = getenv($key);
|
||||
if ($value !== false && $value !== '') return $value;
|
||||
}
|
||||
return $default;
|
||||
}
|
||||
|
||||
$hosts = array_filter(array_unique([
|
||||
env_first(['DB_HOST', 'MYSQL_HOST', 'MARIADB_HOST']),
|
||||
'mysql',
|
||||
'mariadb',
|
||||
'db',
|
||||
'database',
|
||||
'host.docker.internal',
|
||||
'127.0.0.1',
|
||||
]));
|
||||
|
||||
$user = env_first(['DB_USER', 'MYSQL_USER', 'MARIADB_USER'], 'root');
|
||||
$pass = env_first(['DB_PASSWORD', 'MYSQL_PASSWORD', 'MARIADB_PASSWORD'], '');
|
||||
$db = env_first(['WEBGIS02_DB_NAME', 'DB_NAME_WEBGIS02', 'DB_NAME', 'MYSQL_DATABASE', 'MARIADB_DATABASE'], 'webgis_db');
|
||||
|
||||
$conn = false;
|
||||
foreach ($hosts as $host) {
|
||||
$conn = mysqli_connect($host, $user, $pass, $db);
|
||||
if ($conn) break;
|
||||
}
|
||||
|
||||
if (!$conn) {
|
||||
die(json_encode([
|
||||
'status' => 'error',
|
||||
'message' => 'Koneksi database gagal: ' . mysqli_connect_error()
|
||||
'message' => "Koneksi database gagal. Pastikan MySQL service berjalan, environment DB_HOST/DB_USER/DB_PASSWORD benar, dan database '$db' sudah diimport. Error: " . mysqli_connect_error()
|
||||
]));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user