Skip to content
Grav 2.0 is officially stable. Read the announcement →
tutorial 2 mins

Using Grav's new built-in Web Server

Taking advantage of Symfony's high performance server

Andy Miller Andy Miller · FEB 1, 2021
tutorial grav server

One of the cool new features of Grav 1.7 is the new bin/grav server command that now comes with support for Symfony's PHP-FPM-powered local webserver. While Grav has support PHP's native web server, the Symfony server is faster and even supports SSL out of the box.

To take advantage of this, you first need to install the Symfony CLI executable for your system.

Step 1 - Installation

We will assume you already have PHP installed and have some basic level of familiarity with the terminal on your platform of choice.

Download

Visit the Symfony Download page, and click the tab that's suitable for your platform.

Mac Users
BASH
curl -sS https://get.symfony.com/cli/installer | bash

Next, you need to install the binary in your ~/.symfony/bin/ folder. You can add this path to your system path or create a symlink to the binary directory already in your path. On my system, I already have ~/bin in my path so that I can create a symlink there:

BASH
ln -s ~/.symfony/bin/symfony ~/bin/symfony

Feel free to symlink to /usr/local/bin/symfony if you use Brew, as that will already be in your path.

Important

You can use echo $PATH to output the current list of directories in your path.

Linux Users
BASH
wget https://get.symfony.com/cli/installer -O - | bash

Follow the same steps as above to symlink; on my test Raspberry Pi machine, I used:

BASH
sudo ln -s ~/.symfony/bin/symfony /usr/local/bin/symfony
Windows Users

Download the setup.exe file as linked to on the Symfony downloads page. This should set everything up for you.

Step 2 - SSL Cert

While it's not required, it's always a good idea to use SSL for your web connections, even locally. Luckily Symfony makes this easy with a single command:

BASH
symfony server:ca:install

You will probably be prompted to enter your system password to add the CA (Certificate Authority) to your system's trust store. If all goes well you should be greeted with:

BASH
 [OK] The local Certificate Authority is installed and trusted

Tip

Once completed, you will never need to perform steps 1 and 2 again, once is enough! All you need to do from this point on is just follow step 3.

Step 3 - Grav Server Command

Now you can navigate to the root of your Grav installation in your terminal and then run:

BASH
bin/grav server

The Grav server command is smart enough to use the first available port over 8000. This means you can run this command on multiple Grav instances, and each site will be run on a different port. Neat huh?

Server Running

As you can see the server is up and running on 127.0.0.1 or localhost on port 8000, and notice that it's already using HTTPS so SSL is working. Just point your browser to that URL provided: https://127.0.0.1:8000, and you should see some requests display in your terminal:

Traffic

That's it really, enjoy!

Andy Miller
Andy Miller
Creator and lead developer of Grav CMS, with over 30 years in software development and 20+ years in open source, dating back to his years as a core member of the Joomla CMS development team.
Threads Bluesky
Back to blog
← NEWER
Skeleton Build Automation
OLDER →
Grav 1.7 CLI Self-Upgrade Bug
Related posts

Keep reading