Files
fil/docs/snippets/php/installation/requirements_check.php

82 lines
1.8 KiB
PHP
Raw Normal View History

2026-06-01 23:40:55 +02:00
```php title="requirements_check.php"
<?php
declare(strict_types=1);
/**
* System Requirements Check
*
* Verify that your system meets all requirements for running Kreuzberg.
*/
echo "Kreuzberg System Requirements Check\n";
echo "====================================\n\n";
$requirements_met = true;
echo "PHP Version: " . PHP_VERSION;
if (version_compare(PHP_VERSION, '8.1.0', '>=')) {
echo " ✓ (>= 8.1.0 required)\n";
} else {
echo " ✗ (>= 8.1.0 required)\n";
$requirements_met = false;
}
$required_extensions = ['json', 'mbstring'];
foreach ($required_extensions as $ext) {
echo "Extension '$ext': ";
if (extension_loaded($ext)) {
echo "✓ Loaded\n";
} else {
echo "✗ Missing\n";
$requirements_met = false;
}
}
echo "Extension 'kreuzberg': ";
if (extension_loaded('kreuzberg')) {
echo "✓ Loaded\n";
} else {
echo "✗ Missing\n";
$requirements_met = false;
}
$memory_limit = ini_get('memory_limit');
echo "\nMemory Limit: $memory_limit";
$memory_bytes = return_bytes($memory_limit);
if ($memory_bytes >= 128 * 1024 * 1024) {
echo " ✓ (>= 128M recommended)\n";
} else {
echo " ! (>= 128M recommended for large documents)\n";
}
echo "\n";
if ($requirements_met) {
echo "✓ All requirements met! You're ready to use Kreuzberg.\n";
} else {
echo "✗ Some requirements are not met. Please install missing components.\n";
exit(1);
}
/**
* Convert PHP memory limit notation to bytes
*/
function return_bytes(string $val): int
{
$val = trim($val);
$last = strtolower($val[strlen($val) - 1]);
$val = (int) $val;
switch ($last) {
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}
return $val;
}
```