Craft Server Check

A standalone checker that verifies whether a web server meets the minimum requirements to run Craft CMS.

Tool
Composer
v6.0.0
68stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
38/100Needs Attention
Development Activity16
Maintenance20
Community44
Maturity60
Momentum12

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
76/100Good
Architecture72
Code Quality75
Innovation65
Learning Curve92

Craft Server Check (craftcms/server-check) is a small, dependency-free utility that validates whether a web server satisfies the PHP version, extension, and configuration requirements needed to run Craft CMS. It can be run as a one-line shell script, uploaded as a web page for an HTML report, or executed on the command line for a plain-text report.

Because it returns meaningful shell exit codes and supports a strict mode that fails on warnings, it fits naturally into CI/CD pipelines and Dockerfiles where a build should abort if the target environment cannot host Craft. The checker is maintained by the Craft CMS team and mirrors the exact requirements Craft itself enforces.

What You Get

  • A one-line curl-to-bash command for instant server checks
  • A web report (checkit.php) that renders results as HTML in a browser
  • A CLI report mode producing plain-text output over SSH
  • Standardized shell exit codes (0 pass, 1 fail) for automation
  • A strict mode (CRAFT_STRICT_SERVER_CHECK) that fails on warnings

Common Use Cases

  • Verifying a fresh server or container before deploying Craft CMS
  • Gating a CI/CD pipeline or Dockerfile build on environment readiness
  • Diagnosing why a Craft installation fails on an unfamiliar host
  • Giving clients a browser-based report of their hosting compatibility

Under The Hood

Architecture - The core is a single RequirementsChecker class (server/requirements/RequirementsChecker.php) driven by a declarative requirements.php list. Each requirement defines a condition, a mandatory flag, and pass/warn/error messaging. Three thin entry points wrap the checker: check.sh for the curl-piped shell flow, checkit.php as the dispatcher, and console/web view templates that render the results as plain text or HTML.

Tech Stack - Written in PHP with a small Bash bootstrap (check.sh). It has no Composer runtime dependencies and uses a classmap autoload of server/requirements. The requirements definitions mirror the Yii2/Craft server requirement conventions. The GitHub language stat reports Hack because of PHP syntax detection, but the code is standard PHP.

Code Quality - The project is deliberately minimal and stable, with a long changelog reflecting careful maintenance against successive Craft versions. There is no automated test suite (as expected for a self-contained checker), but the logic is straightforward and the requirement definitions are readable and well-commented.

API Design - As a tool rather than a library, its interface is its invocation surface: a memorable curl one-liner, an uploadable folder, and a CLI command, all producing consistent reports and exit codes. The strict-mode environment variable and standardized exit codes give it a clean, automation-friendly contract with minimal learning curve.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search