PHP compatibility and project lifecycle
Supported PHP versions, including 8.4 and 8.5, are unknown from the supplied source. The Requirements page lists web servers such as Apache, Nginx, LiteSpeed and IIS, but the excerpt is truncated. Verify requirements on the official site before use.
Official sources checked 2026-10-22. Browser lessons on this site run PHP 8.5.
It relies only on the official Grav documentation landing page supplied for this guide. That page is an overview with truncated excerpts, so many details are marked unknown below.
What Grav is
The documentation describes Grav as a fast, simple and flexible file-based web platform. It says there is zero installation required: you extract an archive and are up and running. It follows principles similar to other flat-file CMS platforms but says it has a different design philosophy. The excerpt does not say what that philosophy is, so we do not guess.
Classification
Grav is a CMS product, a content platform written in PHP. It is not any of the following:
- A PHP runtime. It runs on PHP and does not replace or reimplement it. PHP core is the language engine and its standard extensions. Grav is an application built on top.
- A framework component library. Framework components are building blocks that developers assemble. A CMS product ships an application with content handling, configuration, themes and plugins.
- An async library, a framework adapter or an alternative interpreter.
- Drupal or any other CMS. Each CMS is a separate product with its own architecture.
Swoole and Open Swoole are separate projects, and neither appears in the Grav source. Do not assume Grav supports either.
Content and execution model
Grav does not require a database. The documentation says the folder structure of your site is very important because no database underpins it. Content and site structure live in files and folders. The top level of an installation includes folders such as assets, backup, bin, cache and images. The excerpt is cut off after that, so the full list is unknown here. Read the Folder Structure page for the complete layout.
Configuration files are written in YAML with a .yaml extension. YAML is the main way to adjust site behavior without editing PHP.
The source does not describe the request lifecycle in detail. Grav is documented as running behind a web server such as Apache, Nginx, LiteSpeed, Lightly or IIS, and the list continues with other servers. That is the classic model: PHP starts fresh for each request and releases request state when the request ends. The source does not mention persistent workers, so whether Grav supports them is unknown, and this guide does not recommend them.
State leakage in persistent workers
This matters if you ever run a CMS in a long-lived process. In a persistent worker, one PHP process handles many requests. Static properties, singletons, global variables, open handles, caches and per-user data can survive from one request to the next. That can leak one visitor's data into another's response. A worker design needs explicit cleanup at the end of each request: reset containers and static state, close or revalidate connections, and recycle workers after a limit. Grav's documentation as supplied says nothing about this, so treat any persistent-worker setup as unsupported until the official docs say otherwise.
Practical use cases
Based on the source, Grav suits sites where content is kept as files and a database is unwanted. Examples are small sites, documentation, brochure pages and local experiments. Fit for large teams, heavy editorial workflows or high traffic is unknown from this source.
Installation approach
The documentation names several options. The first and simplest is to download the ZIP archive and extract it. The second is Composer. The third is cloning a repository, though the excerpt is cut off there. For updates, the documentation prefers the Grav Package Manager (GPM) for Grav, plugins and themes. GPM is also integrated into the Administration Panel plugin.
The requirements page says Grav is intentionally designed with few requirements and runs on most hosting providers. The supplied excerpt does not list the PHP version, extensions or the modules needed. Supported PHP versions, including 8.4 or 8.5, are unknown from this source. Check the Requirements page before choosing a PHP version. The learning track stays on PHP 8.4, with PHP 8.5 planned, but this guide cannot confirm that Grav supports either.
The example
The example below assumes you extracted the official ZIP into a folder named grav-site. It adds a minimal site title and one home page, and it previews the result with PHP's built-in development server bound to 127.0.0.1. The page folder naming and the site.yaml keys come from general Grav conventions, not from the supplied excerpt, so confirm them against the Folder Structure and Configuration pages. If your install differs, the official docs win.
This is a native-host example. It is not a browser exercise, and it needs a local PHP CLI and the downloaded archive. The built-in server is for local development only. Whether it serves Grav's other routes correctly is unknown, so use a documented web server for anything beyond the home page. Never expose a development server publicly.
Strengths
- No database to provision, per the documentation.
- Very few stated requirements and a simple ZIP-based install.
- Readable YAML configuration.
- GPM for updates, with Admin Panel integration.
Limitations and unknowns
- Current version, license, support status, deprecations and PHP compatibility: unknown from the supplied source.
- Performance claims: the page calls Grav fast, but no measurements are provided, and none are repeated here as fact.
- Because the source did not show the Composer and clone commands, this guide does not invent them.
- Lifecycle is recorded as unknown because the source gives no support policy.
Deployment
The source only says Grav runs on a local computer and on most web hosts with a supported web server. Treat the Requirements page as the checklist. Keep the cache and backup folders in mind when deploying, since they are part of the documented structure. Deploy only through documented steps, and never place FastCGI on a public interface.
Links
The official documentation is the only source used: https://learn.getgrav.org/
Practical examples
These examples have not been run in a live environment yet. Commands and versions follow the official documentation linked on this page; check them before relying on them, and report a problem if one does not work.
Minimal Grav home page on a local ZIP install
Overlay two small files onto an extracted official Grav ZIP and preview with the PHP built-in server on 127.0.0.1. File names follow general Grav conventions and are not confirmed by the supplied excerpt, so verify them against the Folder Structure and Configuration pages. Requires a local PHP CLI. Not a browser exercise.
grav-site/user/config/site.yaml
title: LearnPhpOnline Grav Demo
grav-site/user/pages/01.home/default.md
---
title: Home
---
# Hello from Grav
This page is a plain file on disk. No database is involved.
Install and run
cd grav-site
php -v
php -S 127.0.0.1:8080Expected behavior
If the extracted archive is a complete Grav install and your PHP version is supported by it, http://127.0.0.1:8080/ should show a page titled Home with the heading Hello from Grav.
The ZIP must be downloaded manually from the official site, since no download URL was supplied. The PHP version supported by Grav is unknown. The built-in server is for development only, and its handling of non-home routes is unknown. File conventions are unverified against the source. Use a documented web server for any real deployment.