Running PHP8.2 with Nginx on Ubuntu

  • avatar
  • 6 mins read

PHP is a general-purpose scripting language geared towards web development. PHP code is usually processed on a web server by a PHP interpreter implemented as a module, a daemon or as a Common Gateway Interface (CGI) executable.

By default Nginx is not capable of processing dynamic web pages with PHP so it requires the use of specific additional plugins for this purpose. One of these plugins is FPM (FastCGI Process Manager).  FPM is an alternative PHP FastCGI implementation with some additional features (mostly) useful for heavy-loaded sites. It is the preferred method of processing PHP pages with Nginx and is faster than traditional CGI based methods.


You will need a working Nginx setup. If you do not already have one, take a look to our Nginx installation and configuration tutorial to get your server ready.

Uninstalling old PHP versions

If you have installed another version of PHP we recommend to uninstall it executing the following command:

sudo apt-get purge php8.*

The example command shows how to uninstall PHP8 and related packages. Adjust the version number to the one you have installed on your computer.

Installing PHP8.2 FPM

At the time of writing this tutorial PHP 7.4 is the default PHP version in Ubuntu repositories. To install the latest version of PHP, we are going to use the Ondrej PPA repositories. This repository contains multiple PHP versions and PHP extensions. Add the Ondrej PPA:

sudo add-apt-repository ppa:ondrej/php

When prompted, press ENTER to proceed with adding the repository.

Then, update Ubuntu system packages and install dependencies as shown:

sudo apt-get update && sudo apt-get install ca-certificates apt-transport-https software-properties-common

Now, with the PPA included, you can install PHP 8.2. The command will also download all the missing dependencies:

sudo apt-get install php8.2-fpm

Finally, to check the correct installation ask for the version of PHP:

php -v

The output will be similar to the following image and show the installed version on your machine.

PHP version

Installing PHP8.2 extensions

To list all loaded extensions run the following command:

php --modules

The command to install PHP 8.2 extensions is:

sudo apt install php8.2-<extension>

You just need to replace extension with the one you want to install, e.g., mysql, curl, gd, xml, etc... Extensions available by default are the listed below:

php8.2 extensions

You can install frequently used extensions using the command provided below:

apt-get install -y php8.2-common php8.2-fpm php8.2-mysql php8.2-redis php8.2-mongodb php8.2-zip php8.2-gd php8.2-mbstring php8.2-mcrypt php8.2-cli php8.2-curl php8.2-xml php8.2-bcmath 

Enabling PHP8.2 on Nginx server

Now that you have PHP-FPM installed, you will need to enable it updating Nginx configuration file:

sudo nano /etc/nginx/sites-available/default

Note: we are using nano editor but feel free to use your preferred one.

Following lines, as shown, enable PHP-FPM on your Nginx server.

NGINX with PHP 8.2-FPM configuration

Usually these directives are included but commented in the default configuration file. You will need to locate and uncomment them. Don't forget to add the index.php to the indexes list in the same file:

NGINX PHP indexes configuration

Save everything and restart Nginx server to apply changes:

sudo systemctl restart nginx.service

We have successfully configured an Nginx server with PHP-FPM. Enjoy hosting your project on it.

 Join Our Monthly Newsletter

Get the latest news and popular articles to your inbox every month

We never send SPAM nor unsolicited emails


Leave a Reply

Your email address will not be published.

Replying to the message: View original

Hey visitor! Unlock access to featured articles, remove ads and much more - it's free.