Part of my vacation time I like to spend learning and playing with tech. As I spend every waking moment of my professional day in the “frontend” space, I wanted to step back into the “backend” space and my roots of PHP and explore what’s new with PHP8 in particular. I have always been a huge fan of , so I wanted to start with the latest.

This documents my journey as a “noob” to a “Hello World!”

First, I wanted to install Ubuntu 20.04 LTS so I had a decent baseline. I live a double life as a PC gamer, so my main workstation is a Windows PC that now thankfully supports Windows Subsystem ; in my case WSL2.

Install Ubuntu 20.04

First, make sure you’re running WSL. Part of that includes selecting a distribution. If you’re in a situation like me where you’re running an older version (18.04 LTS in my case) and want to update to the latest, those steps are here: sudo update sudo apt list --upgradable sudo apt upgrade sudo apt --purge autoremove sudo apt install update-manager-core sudo do-release-upgrade

You may see an error message “You have not rebooted after installing a package” — if you do, open PowerShell as an Administrator and run the following: Restart-Service LxssManager

When completed, you should be able to see the following after running within your instance: wsl cat /etc/os-release

Jake Litwicki - www.jakelitwicki.com Install PHP8 (Ubuntu)

Installing PHP8 takes mere moments within your linux instance. Simple run these commands, or download as a simple bash script: sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/ sudo apt install php8.0-common php8.0-cli -y sudo apt install php8.0-{bz2,curl,intl,mysql,readline,xml} sudo apt install php8.0-pcov # PCOV code coverage tool sudo apt install php8.0-xdebug # Xdebug debugger

# for nginx #sudo apt install php8.0-fpm

# for apache #sudo apt install libapache2-mod-php8.0

# purge old versions of PHP if applicable sudo apt purge '^php7.*'

One liner install:

Jake Litwicki - www.jakelitwicki.com wget https://gist.githubusercontent.com/litwicki/bb370bec4aed448966f5c51463 16a497/raw/2b9c0f09ef1733654fc628a0df1822c6ac33cb5e/php8-ubuntu- install -O - -q | bash

Install Composer 2 https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md

#!/bin/sh

EXPECTED_CHECKSUM="$(wget -q -O - https://composer.github.io/installer.sig)" php -r "copy('https://getcomposer.org/installer', 'composer- setup.php');" ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer- setup.php');")" if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ] then >&2 echo 'ERROR: Invalid installer checksum' rm composer-setup.php exit 1 fi php composer-setup.php --quiet RESULT=$? rm composer-setup.php exit $RESULT

One liner install:

Jake Litwicki - www.jakelitwicki.com wget https://raw.githubusercontent.com/composer/getcomposer.org/76a7060ccb9 3902cd7576b67264ad91c8a2700e2/web/installer -O - -q | php -- --quiet

Install Composer globally: chmod +x composer.phar mv composer.phar /usr/bin/composer

Setup Symfony app

I am an avid fan of Symfony as a framework because of its flexibility and dedication to performance and extensibility.

First, install the symfony CLI: wget https://get.symfony.com/cli/installer -O - | bash

Next, create your naked Symfony app: symfony new my-app symfony server:ca:install

Enjoy! symfony serve

Jake Litwicki - www.jakelitwicki.com Jake Litwicki - www.jakelitwicki.com