Установка PHP7.2 на Ubuntu Server 18.04 для Apache и Nginx

В этой статье мы подробно рассмотрим установку PHP7.2 на Ubuntu Server 18.04, а так же проверим работу на двух веб-серверах Apache и Nginx.

Шаг 1. - Подготовка

На этапе подготовки мы убеждаемся что у нас есть всё необходимое для выполнения дальнейшей инструкции:

Посмотрим IP-адрес командой ifconfig(Рис.1).

ifconfig
Смотрим IP-адрес Ubuntu 18.04.
Рис.1 - Смотрим IP-адрес Ubuntu 18.04.

Адрес моего сервера - 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
Добавляем репозиторий для установки PHP7.2.
Рис.2 - Добавляем репозиторий для установки PHP7.2.

Обновляем список пакетов:

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.
Рис.3 - Установка PHP7.2.

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

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

У меня 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]:

Редактирования файла виртуального хоста default.
Рис.5 - Редактирования файла виртуального хоста default.
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. - Подготовка

Информация о PHP в браузере.
Рис.6 - Информация о PHP в браузере.

В целях безопасности файл info.php лучше удалить, чтобы скрыть информацию от хакеров.

sudo rm /var/www/html/info.php

У меня всё!

Поделиться публикацией

Была ли вам полезна статья? Есть возможность поддержать проект.

2
Комментарии

avatar
1 Количество основных комментариев
1 Количество ответов
0 Подписчики комментариев
 
Комментарий с большинством ответов
Горячая тема
2 Количество авторов комментариев
first deerАндрей Последние авторы комментариев
  Подписаться на комментарии  
Сначала новые Сначала старые По рейтингу
Уведомление о
Андрей
Гость
Андрей

Вот у меня
# cat /var/www/html/info.php
вывод:

а вот 127.0.0.1/info.php или localhost/info.php или мой айпишник сервера ххх.xxx.xxx.xxx/info.php открывается пустая страница, ни ошибок, ни надписей, ничего