date('Y-m-d H:i:s'), 'checks' => [], 'overall' => true];function addCheck($name, $result, $details = '') { global $report; $report['checks'][] = [ 'name' => $name, 'result' => $result ? 'pass' : 'fail', 'details' => $details ]; if (!$result) { $report['overall'] = false; }}// PHP version$phpVersion = phpversion();$versionOk = version_compare($phpVersion, '8.3.0', '>=');addCheck('PHP Version', $versionOk, "Current: $phpVersion, Required: >=8.3.0");// Extensions$required = ['pdo', 'mbstring', 'json'];$extensions = get_loaded_extensions();foreach ($required as $ext) { $ok = in_array($ext, $extensions); addCheck("Extension: $ext", $ok, $ok ? 'Loaded' : 'Missing');}// .htaccess$htaccessOk = file_exists(ROOT_PATH.'public/.htaccess');addCheck('.htaccess exists', $htaccessOk, $htaccessOk ? 'Found in public/' : 'Missing');// config files$configOk = file_exists(ROOT_PATH.'config/app.php') && file_exists(ROOT_PATH.'config/database.php');addCheck('Config files exist', $configOk, 'config/app.php and config/database.php');// .env$envOk = file_exists(ROOT_PATH.'.env');addCheck('.env file exists', $envOk, $envOk ? 'Found' : 'Missing, please copy from .env.example');// Storage and uploads write permissions$storageOk = is_dir(ROOT_PATH.'storage') && is_writable(ROOT_PATH.'storage');addCheck('Storage directory writable', $storageOk, $storageOk ? 'Writable' : 'Not writable or missing');$uploadsOk = is_dir(ROOT_PATH.'uploads') && is_writable(ROOT_PATH.'uploads');addCheck('Uploads directory writable', $uploadsOk, $uploadsOk ? 'Writable' : 'Not writable or missing');// Database connection if .env existsif ($envOk) { // Load .env $env = parse_ini_file(ROOT_PATH.'.env', true); if ($env === false) { $env = []; } // Flatten $envFlat = []; foreach ($env as $section => $vals) { if (is_array($vals)) { foreach ($vals as $k => $v) { $envFlat[strtoupper($k)] = $v; } } else { foreach ($vals as $k => $v) { // not needed } } } // Also get constants from $_ENV foreach ($_ENV as $k => $v) { $envFlat[strtoupper($k)] = $v; } $host = $envFlat['DB_HOST'] ?? '127.0.0.1'; $port = $envFlat['DB_PORT'] ?? '3306'; $dbname = $envFlat['DB_NAME'] ?? 'test'; $user = $envFlat['DB_USERNAME'] ?? 'root'; $pass = $envFlat['DB_PASSWORD'] ?? ''; try { $pdo = new PDO("mysql:host=$host;port=$port;dbname=$dbname;charset=utf8mb4", $user, $pass, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, ]); $dbOk = true; $dbDetails = 'Connected successfully'; } catch (\Throwable $e) { $dbOk = false; $dbDetails = 'Connection failed: '.$e->getMessage(); } addCheck('Database connection', $dbOk, $dbDetails);}?> تقرير صحة النظام - مركز العماني

تقرير صحة النظام

التاريخ والوقت:

النتيجة العامة: يوجد مشكلات تحتاج إلى معالجة
الفحص النتيجة التفاصيل
العودة إلى الموقع