36 lines
1.4 KiB
PHP
36 lines
1.4 KiB
PHP
<?php
|
|
// config.php
|
|
// Central file for database connection and configuration.
|
|
|
|
// Ensure application log directory exists for capturing warnings/errors.
|
|
$logDir = __DIR__ . '/logs';
|
|
if (!is_dir($logDir)) {
|
|
@mkdir($logDir, 0775, true);
|
|
}
|
|
|
|
if (is_dir($logDir) && is_writable($logDir)) {
|
|
ini_set('log_errors', '1');
|
|
ini_set('error_log', $logDir . '/app.log');
|
|
}
|
|
|
|
// Database credentials (allow override via environment variables for Docker support)
|
|
define('DB_HOST', getenv('DB_HOST') ?: 'k8s.niph.org.kh');
|
|
define('DB_PORT', getenv('DB_PORT') ?: '32364');
|
|
define('DB_USER', getenv('DB_USER') ?: 'sponlork');
|
|
define('DB_PASS', getenv('DB_PASS') !== false ? getenv('DB_PASS') : 'Aa@123456');
|
|
define('DB_NAME', getenv('DB_NAME') ?: 'uat-dsp');
|
|
|
|
// Establish PDO connection
|
|
try {
|
|
$dsn = sprintf('mysql:host=%s;port=%s;dbname=%s;charset=utf8mb4', DB_HOST, DB_PORT, DB_NAME);
|
|
$pdo = new PDO($dsn, DB_USER, DB_PASS);
|
|
// Set PDO attributes for error handling and default fetch mode
|
|
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
|
|
} catch (PDOException $e) {
|
|
// In a production environment, log the error and show a generic message
|
|
error_log("Database connection failed: " . $e->getMessage());
|
|
die("A problem occurred with the database connection. Please try again later.");
|
|
}
|
|
?>
|