EasyStream Requirements Check";
echo "";
$errors = [];
$warnings = [];
// Check PHP version
echo "
PHP Version
";
if (version_compare(PHP_VERSION, '7.4.0', '>=')) {
echo "✓ PHP " . PHP_VERSION . " (OK)
";
} else {
echo "✗ PHP " . PHP_VERSION . " (Requires 7.4+)
";
$errors[] = 'PHP version too old';
}
// Check required extensions
echo "Required Extensions
";
$required_extensions = [
'pdo' => 'Database connectivity',
'pdo_mysql' => 'MySQL database support',
'json' => 'JSON processing',
'mbstring' => 'Multi-byte string support',
'curl' => 'HTTP requests',
'gd' => 'Image processing',
'session' => 'Session management'
];
foreach ($required_extensions as $ext => $desc) {
if (extension_loaded($ext)) {
echo "✓ {$ext} - {$desc}
";
} else {
echo "✗ {$ext} - {$desc} (MISSING)
";
$errors[] = "Missing extension: {$ext}";
}
}
// Check optional but recommended extensions
echo "Recommended Extensions
";
$recommended_extensions = [
'redis' => 'Queue system and caching',
'imagick' => 'Advanced image processing',
'opcache' => 'PHP performance optimization'
];
foreach ($recommended_extensions as $ext => $desc) {
if (extension_loaded($ext)) {
echo "✓ {$ext} - {$desc}
";
} else {
echo "⚠ {$ext} - {$desc} (RECOMMENDED)
";
$warnings[] = "Missing recommended extension: {$ext}";
}
}
// Check directory permissions
echo "Directory Permissions
";
$directories = [
'f_data/logs' => 'Log files',
'f_data/data_userfiles' => 'User uploaded files',
'f_data/data_thumbs' => 'Thumbnail cache',
'f_data/data_tmp' => 'Temporary files'
];
foreach ($directories as $dir => $desc) {
if (is_dir($dir)) {
if (is_writable($dir)) {
echo "✓ {$dir} - {$desc} (Writable)
";
} else {
echo "✗ {$dir} - {$desc} (NOT WRITABLE)
";
$errors[] = "Directory not writable: {$dir}";
}
} else {
echo "⚠ {$dir} - {$desc} (DOES NOT EXIST)
";
$warnings[] = "Directory missing: {$dir}";
}
}
// Summary
echo "Summary
";
if (empty($errors)) {
echo "✓ All critical requirements met!
";
} else {
echo "✗ Critical issues found:
";
echo "";
foreach ($errors as $error) {
echo "- {$error}
";
}
echo "
";
}
if (!empty($warnings)) {
echo "⚠ Warnings (recommended fixes):
";
echo "";
foreach ($warnings as $warning) {
echo "- {$warning}
";
}
echo "
";
}
echo "Next Steps
";
echo "";
echo "- Fix any critical errors above
";
echo "- Run:
docker-compose up -d to start all services ";
echo "- Import database:
docker exec -i vs-db mysql -u easystream -p easystream < __install/easystream.sql ";
echo "- Run missing tables:
docker exec -i vs-db mysql -u easystream -p easystream < deploy/create_missing_tables.sql ";
echo "- Check queue worker:
docker logs vs-queue-worker ";
echo "
";
?>