Different PHP Versions for Each Website on Nginx Ubuntu - TechvBlogs

Different PHP Versions for Each Website on Nginx Ubuntu

Boost your website performance effortlessly! Learn to set up distinct PHP versions for each site on Nginx Ubuntu with our easy guide to optimize your online experience.

Suresh Ramani - Author - TechvBlogs
Suresh Ramani

4 months ago

TechvBlogs - Google News

Ensuring optimal website performance involves strategic configuration of server components. In this guide, we'll walk through the process of setting up a server block in Nginx on Ubuntu, leveraging PHP-FPM for enhanced PHP processing. This approach not only boosts efficiency but also aligns with SEO best practices. Follow along to seamlessly configure Nginx with PHP-FPM and attain peak performance for your web applications.


Before we proceed, make sure you have the following prerequisites in place:

  1. An Nginx web server installed on your Ubuntu system.
  2. PHP and PHP-FPM installed. You can install them using:
    sudo apt update -y
    sudo apt install nginx php php-fpm -y


Steps to Use Different PHP Versions for Each Website on Nginx Ubuntu

Step 1: Create a Server Block Configuration File:

Create a new server block configuration file, for example, your_domain, in the /etc/nginx/sites-available/ directory:

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

Add the following configuration, replacing placeholders with your actual values:

server {
    listen 80;
    server_name your_domain;

    root /var/www/your_directory;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php_php_version-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;

    error_log /var/log/nginx/your_domain_error.log;
    access_log /var/log/nginx/your_domain_access.log;


  • listen 80;: Listens on port 80.
  • server_name: Specifies the server name (domain).
  • root: Defines the root directory for the website.
  • index: Sets the default index files.
  • location /: Handles non-PHP requests, attempting to serve existing files or redirecting to index.php.
  • location ~ \.php$: Handles PHP requests.
  • include snippets/fastcgi-php.conf;: Includes a configuration file for FastCGI and PHP.
  • fastcgi_pass: Specifies the PHP-FPM socket path.
  • fastcgi_param SCRIPT_FILENAME: Sets the script filename for PHP.
  • error_log and access_log: Define the error and access logs for the server block.

Read More: How to Install Multiple PHP Versions on Ubuntu 22.04

Step 2: Create a Symbolic Link:

Create a symbolic link to the sites-enabled directory:

sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

Step 3: Test Configuration:

Ensure the Nginx configuration is error-free:

sudo nginx -t

Step 4: Restart Nginx:

Restart Nginx to apply the changes:

sudo systemctl restart nginx


Congratulations! You've successfully configured Nginx with PHP-FPM for optimal web performance on Ubuntu. Remember to replace your_domain, your_directory, and php_version with your actual values. For ongoing maintenance, monitor logs located in /var/log/nginx/ and stay updated with Nginx and PHP-FPM documentation for best practices. This strategic configuration ensures your website is technically robust and optimized for search engine visibility and user experience.

Comments (0)


Note: All Input Fields are required.