Verification: a143cc29221c9be0

Nginx php fpm для ubuntu

Nginx php fpm для ubuntu

Введение

Перед тем, как начать изучение этого руководства, убедитесь, что вы вошли в систему как пользователь с правами sudo .

Установка PHP 7.2 с Apache

Если вы используете Apache в качестве веб-сервера для установки PHP и модуля Apache PHP, выполните следующую команду:

sudo apt install php libapache2-mod-php 

   После установки пакетов перезапустите службу Apache:

sudo systemctl restart apache2 

Установка PHP 7.2 с Nginx

В отличие от Apache, Nginx не имеет встроенной поддержки обработки файлов PHP, поэтому нам нужно установить отдельное приложение, такое как PHP FPM («менеджер процессов fastCGI»), которое будет обрабатывать файлы PHP.

Чтобы установить пакеты PHP и PHP FPM, выполните следующую команду:

sudo apt install php-fpm 

   После установки пакетов вы можете проверить статус службы PHP FPM с помощью:

systemctl status php7.2-fpm 
* php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-06-30 23:56:14 PDT; 1min 28s ago
     Docs: man:php-fpm7.2(8)
 Main PID: 10080 (php-fpm7.2)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 2321)
   CGroup: /system.slice/php7.2-fpm.service
           |-10080 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
 

   Теперь вы можете отредактировать блок сервера Nginx и добавить следующие строки, чтобы Nginx мог обрабатывать файлы PHP:

server {

    # . . . other code

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }
} 

sudo systemctl restart nginx 

Установка расширений PHP

Чтобы расширить основные функции PHP, вы можете установить некоторые дополнительные расширения. Расширения PHP доступны в виде пакетов и могут быть легко установлены с помощью:

sudo apt install php-[extname] 


Например, если вы хотите установить расширения MySQL и GD PHP, вы должны выполнить следующую команду:

sudo apt install php-mysql php-gd 

После установки нового расширения PHP не забудьте перезапустить Apache или службу PHP FPM, в зависимости от ваших настроек.

Тестирование обработки PHP

Чтобы проверить, правильно ли настроен ваш веб-сервер для обработки PHP, создайте новый файл с именем info.php внутри /var/www/html каталога со следующим кодом:

/var/www/html/info.php

Сохраните файл, откройте нужный браузер и посетите http://your_server_ip/info.php

phpinfo Функция будет печатать информацию о конфигурации PHP , как показано на рисунке ниже:


Установка PHP 7.3 в Ubuntu 18.04

PHP 7.3 - это последняя стабильная версия PHP. Выполните следующие действия, чтобы установить PHP 7.3 в Ubuntu 18.04.

  1. Начните с включения репозитория Ondrej PHP:

    sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php 
    
    
  2. Установите PHP 7.3 и некоторые из наиболее распространенных модулей PHP:

    sudo apt install php7.3 php7.3-common php7.3-opcache php7.3-cli php7.3-gd php7.3-curl php7.3-mysql 
    
    
  3. Чтобы проверить установку, выполните следующую команду, которая распечатает версию PHP:

    php -v 
    PHP 7.3.1-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Jan 13 2019 10:19:33) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.3.1, Copyright (c) 1998-2018 Zend Technologies
        with Zend OPcache v7.3.1-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies 
    
    

Установка PHP 7.1 в Ubuntu 18.04

Используйте PHP 7.1 только в том случае, если вы собираетесь устанавливать приложения, несовместимые с PHP 7.2.

Чтобы установить PHP 7.1, выполните следующие действия:

  1. Включите репозиторий Ondrej PHP, набрав:

    sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php 
    
    
  2. Установите PHP 7.1 и несколько наиболее распространенных модулей PHP:

    sudo apt install php7.1 php7.1-common php7.1-opcache php7.1-mcrypt php7.1-cli php7.1-gd php7.1-curl php7.1-mysql 
    
    
  3. Проверьте установку, набрав:

    php -v 
    PHP 7.1.20-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Jul 25 2018 10:07:09) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
      with Zend OPcache v7.1.20-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies 
    
    

Введение

Перед тем, как начать изучение этого руководства, убедитесь, что вы вошли в систему как пользователь с правами sudo .

Установка PHP 7.2 с Apache

Если вы используете Apache в качестве веб-сервера для установки PHP и модуля Apache PHP, выполните следующую команду:

sudo apt install php libapache2-mod-php 

   После установки пакетов перезапустите службу Apache:

sudo systemctl restart apache2 

Установка PHP 7.2 с Nginx

В отличие от Apache, Nginx не имеет встроенной поддержки обработки файлов PHP, поэтому нам нужно установить отдельное приложение, такое как PHP FPM («менеджер процессов fastCGI»), которое будет обрабатывать файлы PHP.

Чтобы установить пакеты PHP и PHP FPM, выполните следующую команду:

sudo apt install php-fpm 

   После установки пакетов вы можете проверить статус службы PHP FPM с помощью:

systemctl status php7.2-fpm 
* php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-06-30 23:56:14 PDT; 1min 28s ago
     Docs: man:php-fpm7.2(8)
 Main PID: 10080 (php-fpm7.2)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 2321)
   CGroup: /system.slice/php7.2-fpm.service
           |-10080 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
 

   Теперь вы можете отредактировать блок сервера Nginx и добавить следующие строки, чтобы Nginx мог обрабатывать файлы PHP:

server {

    # . . . other code

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }
} 

sudo systemctl restart nginx 

Установка расширений PHP

Чтобы расширить основные функции PHP, вы можете установить некоторые дополнительные расширения. Расширения PHP доступны в виде пакетов и могут быть легко установлены с помощью:

sudo apt install php-[extname] 


Например, если вы хотите установить расширения MySQL и GD PHP, вы должны выполнить следующую команду:

sudo apt install php-mysql php-gd 

После установки нового расширения PHP не забудьте перезапустить Apache или службу PHP FPM, в зависимости от ваших настроек.

Тестирование обработки PHP

Чтобы проверить, правильно ли настроен ваш веб-сервер для обработки PHP, создайте новый файл с именем info.php внутри /var/www/html каталога со следующим кодом:

/var/www/html/info.php

Сохраните файл, откройте нужный браузер и посетите http://your_server_ip/info.php

phpinfo Функция будет печатать информацию о конфигурации PHP , как показано на рисунке ниже:


Установка PHP 7.3 в Ubuntu 18.04

PHP 7.3 - это последняя стабильная версия PHP. Выполните следующие действия, чтобы установить PHP 7.3 в Ubuntu 18.04.

  1. Начните с включения репозитория Ondrej PHP:

    sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php 
    
    
  2. Установите PHP 7.3 и некоторые из наиболее распространенных модулей PHP:

    sudo apt install php7.3 php7.3-common php7.3-opcache php7.3-cli php7.3-gd php7.3-curl php7.3-mysql 
    
    
  3. Чтобы проверить установку, выполните следующую команду, которая распечатает версию PHP:

    php -v 
    PHP 7.3.1-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Jan 13 2019 10:19:33) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.3.1, Copyright (c) 1998-2018 Zend Technologies
        with Zend OPcache v7.3.1-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies 
    
    

Установка PHP 7.1 в Ubuntu 18.04

Используйте PHP 7.1 только в том случае, если вы собираетесь устанавливать приложения, несовместимые с PHP 7.2.

Чтобы установить PHP 7.1, выполните следующие действия:

  1. Включите репозиторий Ondrej PHP, набрав:

    sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php 
    
    
  2. Установите PHP 7.1 и несколько наиболее распространенных модулей PHP:

    sudo apt install php7.1 php7.1-common php7.1-opcache php7.1-mcrypt php7.1-cli php7.1-gd php7.1-curl php7.1-mysql 
    
    
  3. Проверьте установку, набрав:

    php -v 
    PHP 7.1.20-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Jul 25 2018 10:07:09) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
      with Zend OPcache v7.1.20-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies 
    
    

Введение

Прежде чем продолжить работу с этим руководством, убедитесь, что вы выполнили следующие предварительные требования:

  • У вас есть доменное имя, указывающее на общедоступный IP-адрес вашего сервера. Мы будем использовать example.com .
  • Вы вошли в систему как пользователь с привилегиями sudo .
  • У вас установлен Nginx, следуя этим инструкциям .
  • SSL-сертификат установлен для вашего домена. Вы можете установить бесплатный SSL-сертификат Let's Encrypt, следуя этим инструкциям .

Обновите индекс пакетов и системные пакеты до последних версий:

sudo apt update sudo apt upgrade 

Создание базы данных MySQL

WordPress использует базу данных MySQL для хранения всех своих данных. Наш первый шаг - создать базу данных MySQL, учетную запись пользователя MySQL и предоставить доступ к базе данных .

  • Установите MySQL в Ubuntu 18.04
  • Установите MariaDB в Ubuntu 18.04

Войдите в оболочку MySQL, набрав следующую команду и введите пароль при появлении запроса:

mysql -u root -p 

    Из оболочки MySQL запустите следующие операторы SQL, чтобы создать базу данных с именем wordpress , именем пользователя wordpressuser и предоставить пользователю все необходимые разрешения:

CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'change-with-strong-password'; FLUSH PRIVILEGES; EXIT; 

    После выполнения приведенных выше команд у вас будет новая база данных MySQL и учетная запись пользователя, которые будут использоваться вашим экземпляром WordPress.

Установка PHP

PHP 7.2, который является версией PHP по умолчанию в Ubuntu 18.04, полностью поддерживается и рекомендуется для WordPress.

Чтобы установить PHP и все необходимые расширения PHP, выполните следующую команду:

sudo apt install php7.2-cli php7.2-fpm php7.2-mysql php7.2-json php7.2-opcache php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl 


    Мы установили PHP-FPM, потому что мы будем использовать Nginx в качестве веб-сервера.

Служба PHP-FPM автоматически запустится после завершения процесса установки.

Скачивание Wordpress

Перед загрузкой архива Wordpress сначала создайте каталог, в котором будут храниться наши файлы WordPress:

sudo mkdir -p /var/www/html/example.com 
cd /tmp wget https://wordpress.org/latest.tar.gz 

После завершения загрузки распакуйте архив WordPress и переместите извлеченные файлы в корневой каталог документов домена:

tar xf latest.tar.gz sudo mv /tmp/wordpress/* /var/www/html/example.com/ 


    Наконец, нам нужно установить правильные разрешения, чтобы веб-сервер мог иметь полный доступ к файлам и каталогам сайта.

Поскольку и Nginx, и PHP работают как www-data пользователь и группа, для установки правильного владения выполните следующую команду chown :

sudo chown -R www-data: /var/www/html/example.com
 

Настройка Nginx

К настоящему времени у вас уже должен быть установлен Nginx с сертификатом SSL в вашей системе, если нет, проверьте предварительные требования для этого руководства.

Чтобы создать новый серверный блок для нашего экземпляра WordPress, мы будем использовать рецепт Nginx с официального сайта Nginx.

/etc/nginx/sites-available/example.com

# Redirect HTTP -> HTTPS
server {
    listen 80;
    server_name www.example.com example.com;

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

# Redirect WWW -> NON WWW
server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    root /var/www/html/example.com;
    index index.php;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    # log files
    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires max;
        log_not_found off;
    }

}
 

Не забудьте заменить example.com на свой домен Wordpress и указать правильный путь к файлам сертификатов SSL. Фрагменты, используемые в этой конфигурации, созданы в этом руководстве .

Включите серверный блок, создав символическую ссылку на sites-enabled каталог:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ 

    Перед перезапуском сервиса Nginx проверьте, нет ли синтаксических ошибок:

sudo nginx -t 

    Если ошибок нет, результат должен выглядеть так:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
 
sudo systemctl restart nginx 

Завершение установки WordPress

Теперь, когда Wordpress загружен и настройка сервера завершена, мы можем завершить установку через веб-интерфейс.

Откройте браузер, введите свой домен, и появится экран, подобный следующему:


    Выберите язык, который вы хотите использовать, и нажмите Continue кнопку.

Далее вы увидите следующую информационную страницу, нажмите на Let's go! кнопку.


    На следующем экране мастер настройки попросит вас ввести данные подключения к базе данных. Введите данные пользователя MySQL и базы данных, которые вы создали ранее.


    Начните установку, нажав на Run the Installation кнопку.


    На следующем шаге вам нужно будет ввести имя для вашего сайта WordPress и выбрать имя пользователя (в целях безопасности не вводите «admin»).

Программа установки автоматически сгенерирует для вас надежный пароль. Не забудьте сохранить этот пароль. Вы также можете установить пароль самостоятельно.

Введите свой адрес электронной почты и выберите, хотите ли вы, чтобы поисковые системы не индексировали сайт (не рекомендуется).


    Нажмите, Install WordPress и после завершения установки вы попадете на страницу, информирующую вас об установке WordPress. Чтобы получить доступ к форме входа в WordPress, нажмите Log in кнопку.


    Введите свое имя пользователя и пароль и нажмите Log in кнопку.


    После входа в систему вы будете перенаправлены на панель управления WordPress.


    Отсюда вы можете начать настройку своей установки WordPress, установив новые темы и плагины.

Step 1 – Nginx Installation

First of all, we will install Latest Nginx web server on our system. Use the following commands to add PPA for installing latest Nginx version on your Ubuntu 14.04 (Trusty).

echo "deb http://nginx.org/packages/mainline/ubuntu/ `lsb_release -cs` nginx" >> /etc/apt/sources.list
echo "deb-src http://nginx.org/packages/mainline/ubuntu/ `lsb_release -cs` nginx"  >> /etc/apt/sources.list

and use the following commands to install Nginx web server.

curl http://nginx.org/keys/nginx_signing.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install nginx

Step 2 – PHP & PHP-FPM Installation

Install python-software-properties package on your system which provides add-apt-repository command then use the following set of commands to add PPA for PHP with PHP-FPM packages on your Ubuntu system and install it.

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install -y php7.2 php7.2-fpm

Also install the required php modules for you application.

sudo apt-get install php7.2-mysql php7.2-curl php7.2-json

Step 3 – MySQL Installation

Download the MySQL apt configuration Debian package officially provided by MySQL team and install it on your system. For Ubuntu 16.04 and later version’s MySQL 5.7 is available under default apt repositories, so you don’t need to enable additional repository that.

wget http://repo.mysql.com/mysql-apt-config_0.8.9-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.9-1_all.deb

Use the following commands to install MySQL server on your Ubuntu 16.04 and 14.04 systems. Currently, this is the most popular version used by the among users.

sudo apt-get update
sudo apt-get install mysql-server-5.7

You can find more MySQL installation instructions here.

Step 4 – PHP-FPM Configuration

PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features.

sudo nano /etc/php/7.2/fpm/php.ini

un-comment cgi.fix_pathinfo=1 line and set value to 0.

cgi.fix_pathinfo=0

Now set the listen parameter in /etc/php/7.2/fpm/pool.d/www.conf configuration file. Here you can use php7.2-fpm socket to work or start php7.2-fpm service on specific port. We are going to use it as service .

sudo nano /etc/php/7.2/fpm/pool.d/www.conf

Now make changes in the configuration file as below. Commend listen to socket file and enable it as service

#listen = /run/php/php7.2-fpm.sock
listen = 127.0.0.1:9000

Step 5 – Nginx VirtualHost Configuration

Finally do the configuration of Nginx virtualhost. For this example we are editing default configuration file.

sudo nano /etc/nginx/conf.d/default.conf

and make changes as below.

server {
        listen   80;

        root /var/www;
        index index.php index.html index.htm;
        server_name  example.com www.example.com;

        location / {
                try_files $uri $uri/ /index.html;
        }

        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
              root /usr/share/nginx/www;
        }

        location ~ .php$ {
                try_files $uri =404;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}

You have to do the same changes in all VirtualHosts configured.

Step 6 – Restart All Services

After installing and configuring all the services on your system, restart all required services to reload any changes made.

sudo service nginx restart
sudo service php7.2-fpm restart

Step 7 – Allow Firewall Access

If you are using iptables, Use following commands to open port 80 for public access of web server.

Iptables Users:

sudo iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT

UFW Users:

$ sudo ufw allow 80/tcp

Установка PHP 7.4 с Apache

Если вы используете Apache в качестве веб-сервера, выполните следующие команды для установки PHP и модуля Apache PHP:

sudo apt updatesudo apt install php libapache2-mod-php

После установки пакетов перезапустите Apache, чтобы модуль PHP загрузился:

sudo systemctl restart apache2

Установка PHP 7.4 с Nginx

В отличие от Apache, Nginx не имеет встроенной поддержки обработки файлов PHP. Мы будем использовать PHP-FPM («менеджер процессов fastCGI») для обработки файлов PHP.

Выполните следующие команды, чтобы установить пакеты PHP и PHP FPM:

sudo apt updatesudo apt install php-fpm

После завершения установки служба FPM запустится автоматически. Чтобы проверить статус службы, запустите

systemctl status php7.4-fpm
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-06-09 19:07:05 UTC; 37s ago

Теперь вы можете отредактировать блок сервера Nginx и добавить следующие строки, чтобы Nginx мог обрабатывать файлы PHP:

server {

    # . . . other code

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }
}

Не забудьте перезапустить службу Nginx, чтобы новая конфигурация вступила в силу:

sudo systemctl restart nginx

Установка расширений PHP

Расширения PHP — это скомпилированные библиотеки, которые расширяют основные функции PHP. Расширения доступны в виде пакетов и могут быть легко установлены с помощью apt :

sudo apt install php-[extname]

Например, чтобы установить расширения MySQL и GD, вы должны выполнить следующую команду:

sudo apt install php-mysql php-gd

После установки нового расширения PHP, в зависимости от ваших настроек, не забудьте перезапустить службу Apache или PHP FPM.

Тестирование обработки PHP

Чтобы проверить, правильно ли настроен веб-сервер для обработки PHP, создайте новый файл с именем info.php внутри каталога /var/www/html со следующим кодом:

/var/www/html/info.php

Сохраните файл, откройте браузер и посетите: http://your_server_ip/info.php .

Вы увидите информацию о своей конфигурации PHP, как показано на изображении ниже:

Установка предыдущих версий PHP

Ондржей Сури, разработчик Debian, поддерживает репозиторий, включающий несколько версий PHP. Чтобы включить репозиторий , запустите:

sudo apt install software-properties-commonsudo add-apt-repository ppa:ondrej/php

Теперь вы можете установить любую нужную версию PHP, добавив номер версии к имени пакета:

sudo apt install php[version]

Например, чтобы установить PHP 7.1 и несколько распространенных модулей PHP, вы должны запустить:

sudo apt install php7.1 php7.1-common php7.1-opcache php7.1-mcrypt php7.1-cli php7.1-gd php7.1-curl php7.1-mysql

Prerequisites

Shell access with sudo privileged account to Ubuntu 20.04 system.

Step 1 – Installing Nginx

Nginx packages are available under default repositories. SSH to your Ubuntu 20.04 LTS system with sudo privileges account and install Nginx web server from the official repository.

sudo apt update 
sudo apt install nginx

Step 2 – Installing PHP

For the PHP installation we recommend to use ppa:ondrej/php PPA, which provides latest PHP versions for Ubuntu systems. Use the below couple of commands to add the PPA to your system.

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Then install PHP 7.4 the latest version available on the day of writing this tutorial. Simply execute follows commands for the installation of PHP and PHP-FPM packages.

apt update
sudo apt install php7.4 php7.4-fpm

Note:- When you are using PHP-FPM. All the PHP modules configurations are residing under /etc/php/7.4/fpm directory. You can read more about enable/disable PHP modules.

After installing above packages php7.4-fpm service will automatically be started. You can make sure by typing below command on terminal.

sudo systemctl status php7.4-fpm

● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-06-16 05:15:57 UTC; 1 day 10h ago
       Docs: man:php-fpm7.4(8)
   Main PID: 882699 (php-fpm7.4)
     Status: "Processes active: 0, idle: 2, Requests: 2, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 2283)
     Memory: 12.1M
     CGroup: /system.slice/php7.4-fpm.service
             ├─882699 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─882714 php-fpm: pool www
             └─882715 php-fpm: pool www

Jun 16 05:15:57 tecadmin systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
Jun 16 05:15:57 tecadmin systemd[1]: Started The PHP 7.4 FastCGI Process Manager.

Step 4 – Configuring NGINX with FPM

Next, create a Nginx server block configuration file to run PHP with FPM. Create and Edit a VirtualHost host configuration file in a text editor. You can create new VirtualHost as per your requirements, so make sure to enable any new VirtualHost.

sudo vim /etc/nginx/sites-available/example.com

Use the below basic Nginx Virtual host configuration with php fpm settings. Update the configuration as followings.

server {

        listen 80;

        root /var/www/html;

        index index.php index.html index.htm;

        server_name example.com;

        location / {

            try_files $uri $uri/ =404;

        }

        location ~ \.php$ {

            include snippets/fastcgi-php.conf;

            fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;

        }

}

Save your changes to the configuration file and create a link to site enabled directory.

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com 

Then restart Nginx service to reload the changes.

sudo systemctl restart nginx

Step 4 – Testing the Setup

Your server setup is completed now. Let’s create a PHP script with phpinfo() function and place it to your server document root. Use below command to create php script:

echo "" > /var/www/html/info.php

Then access info.php viausing server IP address (for default VirtualHost) or configured domain in Nginx VirtualHost.

how to setup nginx php fpm ubuntu 20.04

Slide down the page and see the value of $_SERVER[‘SERVER_SOFTWARE’]. This will the show the web server details.