Содержание статьи:
В этой статье мы подробно рассмотрим установку PHP7.2 на Ubuntu Server 18.04, а так же проверим работу на двух веб-серверах Apache и Nginx.
Шаг 1. - Подготовка
На этапе подготовки мы убеждаемся что у нас есть всё необходимое для выполнения дальнейшей инструкции:
- Нам нужна установленная ОС Ubuntu Server 18.04. - Вам в помощь статья - Установка Ubuntu Server 18.04 LTS
- Ubuntu Server 18.04 должна иметь доступ в интернет. - Настройка сети в Ubuntu Server 18.04 [Netplan]
- Для проверки потребуется веб-сервер Apache или Nginx. - Apache web server. Установка на Ubuntu Server 18.04
или Установка Nginx на Ubuntu Server 18.04
Посмотрим IP-адрес командой ifconfig(Рис.1).
ifconfig

Адрес моего сервера - 192.168.3.8, в этой статье я буду вводить его в браузере на другом ПК, для проверки работоспособности PHP7.2. Вы должны будете ввести свой IP-адрес.
Если у вас, допустим, Ubuntu Desktop 18.04 и нету возможности подключиться с другого ПК, то вводите на своей же Ubuntu в браузере - localhost или IP-адрес - 127.0.0.1
На этом подготовка завершена, приступаем к установке PHP7.2.
Шаг 2. - Установка PHP7.2 на Ubuntu 18.04
Нужно добавить репозиторий чтобы все пакеты PHP7.2 нормально установились.(Рис.2)
sudo add-apt-repository ppa:ondrej/php

Обновляем список пакетов:
sudo apt update
Переходим к установке PHP7.2.(Рис.3)
sudo apt -y install php7.2 php7.2-fpm php7.2-mysql php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl php-common php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline
Если вы устанавливаете PHP7.2 для веб-сервера Apache, то требуется установить ещё один пакет libapache2-mod-php. [Для того чтобы PHP-код у вас работал на Apache, а не просто отображал код в браузере]:
sudo apt -y install php libapache2-mod-php
Пакеты я устанавливал по отдельности [для проверки] все они успешно установились. Пакеты php-common, php7.2-cli, php7.2-common, php7.2-json, php7.2-opcache, php7.2-readline скорее всего установятся вместе с предыдущими пакетами, которые написаны в начале этой длинной команды и вы получите в ответ "Уже установлен пакет ... самой новой версии".

Проверяем статус php7.2-fpm.(Рис.4)
sudo service php7.2-fpm status

У меня php7.2-fpm запустился. [Об этом свидетельствует строчка - "Active: active (running)", также отсутствуют ошибки.]
И php7.2-fpm добавлен в автозагрузку. [Это мы понимаем по слову "enabled;" В строке "Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; ".]
Если у вас не запустился или не добавился в автозагрузку php7.2-fpm, то воспользуйтесь командами:
Запускаем php7.2-fpm.
sudo service php7.2-fpm start
Добавляем php7.2-fpm в автозагрузку.
sudo systemctl enable php7.2-fpm
Доработка только для Nginx
Если у вас веб-сервер Apache, то переходите к следующему шагу - Шаг 3. - Проверка - info.php
Для того чтобы PHP-FPM заработал с Nginx, необходимо отредактировать конфигурационный файл виртуального хоста. Так как у нас чистый Nginx [мы не создавали новые конфигурационные файлы и не вносили изменения в существующие], то у нас доступен один стандартный конфигурационный файл виртуального хоста - /etc/nginx/sites-available/default, приступаем к его редактирванию.
sudo nano /etc/nginx/sites-available/default
Найдите данный фрагмент и приведите его к следующему виду.(Рис.5) [раскомментируйте строки и укажите правильную версию php-fpm -> php7.2-fpm.sock, у меня по умолчанию была 7.0]:

location ~ \.php$ { include snippets/fastcgi-php.conf; # With php-fpm (or other unix sockets): fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; # With php-cgi (or other tcp sockets): # fastcgi_pass 127.0.0.1:9000; }
Сохраняем(Ctrl+o -> Enter) и закрываем(Ctrl+x -> Enter) конфигурационный файл.
Чтобы изменения применились нужно, чтобы Nginx перечитал конфигурационные файлы - делаем reload.
sudo service nginx reload
Шаг 3. - Проверка - info.php
Для того чтобы проверить PHP-FPM и узнать подробную информацию о PHP, нужно создать файл info.php в каталоге html вэб-сервера, вписать в него специальную строчку php-кода, для отображения информации, и в браузере открыть страницу IP-адрес/info.php. Приступим!
Проверка PHP для вэб-серверов Apache и Nginx одинаковая:
Создаём файл info.php.
sudo touch /var/www/html/info.php
Вписываем в файл info.php строчку <?php phpinfo(); ?>. Сделал это одной командой, так быстрее вам будет скопипастить.
sudo sh -c "echo '<?php phpinfo(); ?>' >> /var/www/html/info.php"
Проверим, через cat, вписалась ли строчка в файл info.php.
cat /var/www/html/info.php
У меня всё ок! Теперь в браузере по адресу 192.168.3.8/info.php можно увидеть всю информацию о PHP установленном нашем сервере.(Рис.6) Это значит что PHP корректно работает на нашем Apache или Nginx.
Для тех кто в танке... Если у вас, допустим, Ubuntu Desktop 18.04 и нету возможности подключиться с другого ПК, то вводите на своей же Ubuntu в браузере - localhost или IP-адрес - 127.0.0.1 © Шаг 1. - Подготовка

В целях безопасности файл info.php лучше удалить, чтобы скрыть информацию от хакеров.
sudo rm /var/www/html/info.php
У меня всё!
Была ли вам полезна статья? Есть возможность поддержать проект.
Вот у меня
# cat /var/www/html/info.php
вывод:
а вот 127.0.0.1/info.php или localhost/info.php или мой айпишник сервера ххх.xxx.xxx.xxx/info.php открывается пустая страница, ни ошибок, ни надписей, ничего
где вывод? проверь, правильно ли написана строка - < ?php phpinfo(); ?>