From e800b5b057cf3563ee702dfaa84733ba8f66d6c4 Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Wed, 26 Aug 2026 22:47:17 +0300 Subject: [PATCH] fix: Lock .env strictly to CloudPanel user root /home/intaleqapp-saqel/.env --- backend/app/bootstrap.php | 30 ++++++++---------------------- 1 file changed, 8 insertions(+), 22 deletions(-) diff --git a/backend/app/bootstrap.php b/backend/app/bootstrap.php index 57d633f..2a8d6ca 100644 --- a/backend/app/bootstrap.php +++ b/backend/app/bootstrap.php @@ -25,33 +25,19 @@ spl_autoload_register(function ($class) { } }); -// 2. Load Environment Variables (Checks local and production server locations) +// 2. Load Environment Variables (Fixed Dedicated CloudPanel Path: /home/intaleqapp-saqel/.env) try { - $candidatePaths = [ - APP_ROOT . '/.env', // saqel/backend/.env - APP_ROOT . '/../.env', // saqel/.env - APP_ROOT . '/../../.env', // htdocs/saqel.intaleqapp.com/.env - '/home/intaleqapp-saqel/htdocs/saqel.intaleqapp.com/saqel/.env', - '/home/intaleqapp-saqel/htdocs/saqel.intaleqapp.com/.env', - '/home/intaleqapp-saqel/.env', - '/home/saqel/.env', - APP_ROOT . '/docker/.env', - ]; + // Fixed CloudPanel root path on server, with local fallback for local development + $env_file = file_exists('/home/intaleqapp-saqel/.env') + ? '/home/intaleqapp-saqel/.env' + : APP_ROOT . '/.env'; - $env_file = null; - foreach ($candidatePaths as $path) { - if (file_exists($path) && is_readable($path) && filesize($path) > 10) { - $env_file = realpath($path) ?: $path; - break; - } - } - - if ($env_file) { + if (file_exists($env_file)) { define('LOADED_ENV_PATH', $env_file); \App\Core\Env::load($env_file); } else { - define('LOADED_ENV_PATH', 'NONE_FOUND'); - error_log("⚠️ [Env Warning] No valid .env file found in candidate paths. Expecting variables from server environment."); + define('LOADED_ENV_PATH', 'NOT_FOUND: ' . $env_file); + error_log("⚠️ [Env Warning] .env file not found at: {$env_file}"); } } catch (\Exception $e) { error_log('Env Load Error: ' . $e->getMessage());