This note is based off the excellent Linuxize.com. I recommend going to their site for a more detailed tutorial, and more tutorials in general. I’m writing my own version because I want a copy in case their site shuts down, and because my own notes are a quicker reference than searching for a specific article online.
Add Debian developer Ondřej Surý’s repository that includes multiple PHP versions.
sudo apt install software-properties-commonIf you’re using Ubuntu:
sudo add-apt-repository ppa:ondrej/phpIf you’re using Debian:
sudo apt install -y apt-transport-https lsb-release ca-certificates curl
curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x
sudo apt updateThe script, if you’re wondering and don’t want to just run anything from the internet (a good idea) is as follows:
#!/bin/sh
# To add this repository please do:
if [ "$(whoami)" != "root" ]; then
SUDO=sudo
fi
${SUDO} apt-get update
${SUDO} apt-get -y install lsb-release ca-certificates curl
${SUDO} curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
${SUDO} dpkg -i /tmp/debsuryorg-archive-keyring.deb
${SUDO} sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
${SUDO} apt-get updateIf You’re Using Apache
Install Apache on Ubuntu or Debian, then install PHP as an Apache module. Replace 8.4 with your desired PHP version.
sudo apt install php8.4 libapache2-mod-php8.4Once the packages are installed, restart Apache to load the PHP module.
sudo systemctl restart apache2Configure Apache with PHP-FPM
Replace 8.4 with your desired PHP version.
sudo apt update
sudo apt install php8.4-fpm libapache2-mod-fcgid
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.4-fpm
systemctl restart apache2If You’re using Nginx
Replace 8.4 with your desired PHP version.
sudo apt update
sudo apt install php8.4-fpmNow edit your Nginx server block, and add the following lines so Nginx can process PHP files.
server {
# . . . other code
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
}
}Now restart your Nginx service.
sudo systemctl restart nginxInstalling PHP extensions
Replace 8.4 with your desired PHP version.
sudo apt install php8.4-[extname]