82 lines
1.8 KiB
PHP
82 lines
1.8 KiB
PHP
```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;
|
|
}
|
|
```
|