From 0d994831c90951f77db84056a3fca8b4f3f6434a Mon Sep 17 00:00:00 2001 From: naukyy Date: Sun, 14 Jun 2026 17:28:43 +0700 Subject: [PATCH] setup coolify --- versi/backend/api/jalan.php | 2 +- versi/backend/api/kavling.php | 2 +- versi/backend/api/rumah_ibadah.php | 2 +- versi/backend/api/spbu.php | 2 +- versi/backend/api/statistik.php | 2 +- versi/backend/api/warga_miskin.php | 2 +- webgis_app/core_config/database.php | 51 +++++++++++++------ webgis_app/import.php | 2 +- webgis_app/index.php | 2 +- webgis_app/logout.php | 2 +- webgis_app/panel_admin/kelola_jalan.php | 2 +- webgis_app/panel_admin/kelola_kavling.php | 2 +- webgis_app/panel_admin/kelola_kawasan.php | 2 +- webgis_app/panel_admin/manajemen_pengguna.php | 2 +- 14 files changed, 48 insertions(+), 29 deletions(-) diff --git a/versi/backend/api/jalan.php b/versi/backend/api/jalan.php index 886efd9..181ab88 100644 --- a/versi/backend/api/jalan.php +++ b/versi/backend/api/jalan.php @@ -1,4 +1,4 @@ -setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - self::$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); + try { + self::$conn = new PDO( + "mysql:host={$host};port={$port};dbname={$dbName};charset=utf8mb4", + $username, + $password + ); + self::$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + self::$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); - // Disable strict mode for GROUP BY to prevent 1055 errors in Coolify's MariaDB - self::$conn->exec("SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))"); + // Disable strict mode for GROUP BY to prevent 1055 errors in Coolify's MariaDB + self::$conn->exec("SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))"); - // Auto-initialize database if empty - $stmt = self::$conn->query("SHOW TABLES LIKE 'users'"); - if ($stmt->rowCount() == 0) { - $sqlFile = __DIR__ . '/../../db_scripts/webgis_naufal_zaky.sql'; - if (file_exists($sqlFile)) { - $sql = file_get_contents($sqlFile); - self::$conn->exec($sql); + // Auto-initialize database if empty + $stmt = self::$conn->query("SHOW TABLES LIKE 'users'"); + if ($stmt->rowCount() == 0) { + $sqlFile = __DIR__ . '/../../db_scripts/webgis_naufal_zaky.sql'; + if (file_exists($sqlFile)) { + $sql = file_get_contents($sqlFile); + self::$conn->exec($sql); + } + } + } catch (PDOException $e) { + $isApi = (defined('JSON_REQUEST') && JSON_REQUEST) || + (strpos($_SERVER['REQUEST_URI'] ?? '', '/api/') !== false) || + (strpos($_SERVER['REQUEST_URI'] ?? '', 'endpoints/') !== false) || + (isset($_SERVER['HTTP_ACCEPT']) && strpos($_SERVER['HTTP_ACCEPT'], 'application/json') !== false); + + if ($isApi) { + header('Content-Type: application/json; charset=utf-8'); + http_response_code(500); + echo json_encode([ + 'status' => 'error', + 'message' => 'Database Connection Failed: ' . $e->getMessage() + ]); + exit(); + } else { + die("Database Connection Failed: " . $e->getMessage()); } } } diff --git a/webgis_app/import.php b/webgis_app/import.php index e8b5d60..53045c4 100644 --- a/webgis_app/import.php +++ b/webgis_app/import.php @@ -1,4 +1,4 @@ -