PHPackages                             craftcms/server-check - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. craftcms/server-check

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

craftcms/server-check
=====================

Craft CMS Server Check

6.0.0(1mo ago)684.4M↓35%16[1 issues](https://github.com/craftcms/server-check/issues)1MITHackCI passing

Since Dec 31Pushed 1mo ago2 watchersCompare

[ Source](https://github.com/craftcms/server-check)[ Packagist](https://packagist.org/packages/craftcms/server-check)[ Docs](https://craftcms.com/)[ RSS](/packages/craftcms-server-check/feed)WikiDiscussions 5.x Synced yesterday

READMEChangelog (10)DependenciesVersions (58)Used By (1)

Craft Server Check
==================

[](#craft-server-check)

This script checks if a web server meets the minimum requirements to run a Craft 4 installation.

Usage
-----

[](#usage)

Run the following in a terminal of any [\*nix](https://en.wikipedia.org/wiki/Unix-like) environment (e.g. Linux, MacOS, WSL):

```
curl -Lsf https://raw.githubusercontent.com/craftcms/server-check/HEAD/check.sh | bash
```

> **Note**You can [review the substance](https://github.com/craftcms/server-check/blob/main/check.sh) of this script before execution.

### Alternatives

[](#alternatives)

#### Web UI

[](#web-ui)

Upload the `server/` folder to your web server’s web root and load `checkit.php` from a browser to get an HTML report.

#### Remote CLI

[](#remote-cli)

The same `server/` folder can be uploaded anywhere on your server and used via the command line to get a plain-text report:

```
php checkit.php
```

This is equivalent to the default [usage](#usage) instructions, above.

Shell exit codes
----------------

[](#shell-exit-codes)

If all requirements are met, the script will return an exit code of `0`.

The script will return an exit code of `1` if:

- Any errors are encountered, or requirements are not met
- An environment variable `CRAFT_STRICT_SERVER_CHECK=1` is set, and any *warnings* are found:

    ```
    CRAFT_STRICT_SERVER_CHECK=1 php server/checkit.php
    ```

This can be especially useful in a CI/CD pipeline, or a `Dockerfile`, where you want the process to fail if the check does not pass:

```
# Dockerfile
FROM php:8.0-fpm
RUN curl -Lsf https://raw.githubusercontent.com/craftcms/server-check/HEAD/check.sh | bash
```

The official [Craft Docker Images](https://github.com/craftcms/docker) run this check when building to be certain all of Craft's requirements are met in any built image.

###  Health Score

66

—

FairBetter than 99% of packages

Maintenance89

Actively maintained with recent releases

Popularity57

Moderate usage in the ecosystem

Community26

Small or concentrated contributor base

Maturity77

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~61 days

Recently: every ~72 days

Total

57

Last Release

58d ago

Major Versions

2.1.8 → 5.0.02023-10-01

2.1.9 → 5.0.22024-09-16

2.1.10 → 5.0.32025-02-11

2.x-dev → 5.0.42025-07-23

5.x-dev → 6.0.02026-05-06

### Community

Maintainers

![](https://www.gravatar.com/avatar/3ccdf8b493035de2343c55bd889513e3af5c04d5823482a2b186ad16adb1c3e3?d=identicon)[brandonkelly](/maintainers/brandonkelly)

---

Top Contributors

[![brandonkelly](https://avatars.githubusercontent.com/u/47792?v=4)](https://github.com/brandonkelly "brandonkelly (90 commits)")[![angrybrad](https://avatars.githubusercontent.com/u/61869?v=4)](https://github.com/angrybrad "angrybrad (89 commits)")[![timkelty](https://avatars.githubusercontent.com/u/18329?v=4)](https://github.com/timkelty "timkelty (35 commits)")[![AugustMiller](https://avatars.githubusercontent.com/u/1895522?v=4)](https://github.com/AugustMiller "AugustMiller (2 commits)")[![XhmikosR](https://avatars.githubusercontent.com/u/349621?v=4)](https://github.com/XhmikosR "XhmikosR (1 commits)")[![ccchapman](https://avatars.githubusercontent.com/u/42548502?v=4)](https://github.com/ccchapman "ccchapman (1 commits)")[![CheerfulPlum](https://avatars.githubusercontent.com/u/16541275?v=4)](https://github.com/CheerfulPlum "CheerfulPlum (1 commits)")[![olivierbon](https://avatars.githubusercontent.com/u/146041?v=4)](https://github.com/olivierbon "olivierbon (1 commits)")

---

Tags

cmscraft3craftcmsphpcmsyii2craftcmsrequirements

### Embed Badge

![Health badge](/badges/craftcms-server-check/health.svg)

```
[![Health](https://phpackages.com/badges/craftcms-server-check/health.svg)](https://phpackages.com/packages/craftcms-server-check)
```

###  Alternatives

[craftcms/generator

Craft CMS component generator

88403.1k54](/packages/craftcms-generator)[craftcms/guest-entries

This plugin allows you to save guest entries from the front-end of your website.

10793.9k3](/packages/craftcms-guest-entries)[craftcms/webhooks

Post webhooks when events are triggered in Craft CMS.

84139.0k1](/packages/craftcms-webhooks)[craftcms/ckeditor

Edit rich text content in Craft CMS using CKEditor.

47406.3k76](/packages/craftcms-ckeditor)[craftcms/anchors

Add anchor links to headings in your Craft CMS website content.

4734.0k](/packages/craftcms-anchors)[rynpsc/craft-phone-number

International phone number field.

2268.1k](/packages/rynpsc-craft-phone-number)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
