{"record":{"id":"fd4df871713ad9ab","repo":"wallabag/wallabag","slug":"some-system-requirements-are-not-fulfilled-please","errorCode":null,"errorMessage":"Some system requirements are not fulfilled. Please check output messages and fix them.","messagePattern":"Some system requirements are not fulfilled\\. Please check output messages and fix them\\.","errorType":"console","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"src/Command/InstallCommand.php","lineNumber":210,"sourceCode":"\n        foreach ($this->functionExists as $functionRequired) {\n            $label = '<comment>' . $functionRequired . '</comment>';\n            $status = '<info>OK!</info>';\n            $help = '';\n\n            if (!\\function_exists($functionRequired)) {\n                $fulfilled = false;\n                $status = '<error>ERROR!</error>';\n                $help = 'You need the ' . $functionRequired . ' function activated';\n            }\n\n            $rows[] = [$label, $status, $help];\n        }\n\n        $this->io->table(['Checked', 'Status', 'Recommendation'], $rows);\n\n        if (!$fulfilled) {\n            throw new \\RuntimeException('Some system requirements are not fulfilled. Please check output messages and fix them.');\n        }\n\n        $this->io->success('Success! Your system can run wallabag properly.');\n\n        return $this;\n    }\n\n    private function getDatabaseDriver(): string\n    {\n        $driver = $this->entityManager->getConnection()->getParams()['driver'] ?? null;\n\n        return match ($driver) {\n            'pdo_mysql', 'mysqli' => 'pdo_mysql',\n            'pdo_pgsql', 'pgsql' => 'pdo_pgsql',\n            'pdo_sqlite', 'sqlite3' => 'pdo_sqlite',\n            default => throw new \\RuntimeException('Unsupported database driver: ' . (string) $driver),\n        };\n    }","sourceCodeStart":192,"sourceCodeEnd":228,"githubUrl":"https://github.com/wallabag/wallabag/blob/efe93850ad9006711d871879ae37cc06af3d3bf3/src/Command/InstallCommand.php#L192-L228","documentation":"wallabag:install step 1 walks a checklist of PHP functions and extensions, building a status table; if any required item is missing (function_exists fails, etc.) the command throws RuntimeException after printing the table, aborting installation. The table rows above the exception tell you exactly which 'Checked' item has 'ERROR!' status and the Recommendation column names the needed function.","triggerScenarios":"Running php bin/console wallabag:install on a host missing PHP extensions wallabag requires (e.g. XML, curl, intl, gd related functions disabled); php.ini disabling functions via disable_functions; using an unsupported PHP build.","commonSituations":"Shared hosting with a trimmed PHP; Docker images missing php-* extensions; sysadmin hardening php.ini with disable_functions; PHP version mismatch after upgrade re-enabling a minimal module set.","solutions":["Read the printed table: every row with 'ERROR!' names the missing function and the Recommendation column tells you what to enable","Install/enable the reported PHP extensions (e.g. apt install php-xml php-curl php-mbstring php-intl php-gd, then restart PHP-FPM/web server)","Remove the reported functions from disable_functions in php.ini if your policy allows","Re-run php bin/console wallabag:install to confirm the check passes"],"exampleFix":"// before: php.ini\ndisable_functions = curl_init,dom_import_simplexml\n// after: php.ini (then restart PHP)\ndisable_functions =","handlingStrategy":"try-catch","validationCode":"// Pre-flight the same checks before invoking the installer\n$required = ['curl_init', 'mb_strlen', 'iconv', 'simplexml_load_string'];\n$missing = array_filter($required, static fn ($f) => !function_exists($f));\nif ($missing) {\n    fwrite(STDERR, 'Missing PHP functions: ' . implode(', ', $missing) . \"\\n\");\n    exit(1);\n}","typeGuard":null,"tryCatchPattern":"try {\n    $process->run('php bin/console wallabag:install');\n} catch (ProcessFailedException $e) {\n    $output = $process->getOutput();\n    // parse the 'ERROR!' rows from the requirement table, install the named\n    // extensions/functions, restart PHP, then re-run install\n}","preventionTips":["Provision hosts with wallabag's documented PHP extension list before install","Review disable_functions in php.ini on hardened servers","Use the official wallabag Docker image for a known-good PHP setup","Always read the requirement table rows before debugging anything else"],"tags":["install","php-extensions","requirements","cli","wallabag"],"backgroundTag":"system-requirements-check-failed","analyzedSha":"efe93850ad9006711d871879ae37cc06af3d3bf3","analyzedAt":"2026-08-21T01:21:43.612Z","schemaVersion":2},"datasetVersion":"2026-08-21T03:17:12.404Z"}