• База знаний
  • /
  • Блог
  • /
  • Wiki
  • /
+380 (44) 364 05 71

Лого PHP 8.0

Оглавление

Новая версия PHP 8.0

PHP (англ. Hypertext Preprocessor) — достаточно популярный язык в среде веб-разработчиков, он служит для генерации динамических сайтов и является базовым для многих известных CMS, например, таких как WordPress и др. Скрипты, написанные на PHP, исполняются непосредственно на веб-сервере.

Релиз версии PHP 8.0 состоялся 26 ноября 2020 г. Восьмая версия содержит следующие новшества:

  • поддержку "union type",
  • использование динамической компиляции (JIT-компиляции),
  • работу с атрибутами (или аннотациями).

В этой статье мы расскажем, как установить под Ubuntu 20 PHP version 8, покажем, как это можно сделать под Apache или Nginx. Также опишем все тонкости установки PHP8, как альтернативной версии на сервере и особенности выполнения веб-проектов под разными версиями языка PHP.

Процесс установки PHP 8.0 на сервер под Ubuntu 20

Покажем на практическом примере, как установить PHP 8, в качестве версии «по умолчанию», на сервер под управлением Ubuntu 20.04. Дело в том, что в базовом репозитории Ubuntu 20.04 находится версия PHP 7.4 (по умолчанию), поэтому нам необходимо воспользоваться репозиторием Ондржея Сури (Ond?ej Surý), в котором есть сразу несколько версий языка PHP. Все описанные далее действия можно выполнить и под Ubuntu 18.04 (также и под некоторыми совместимыми с Ubuntu OC, например, Kubuntu, Linux Mint и др.)

*Примечание: Перед выполнением всех работ по инсталляции, необходимо убедиться, что ваши веб-приложения поддерживают php 8.0.

Перед тем, как начать процесс установки, выполните обновления на серверной ОС Ubuntu:

apt update && apt full-upgrade –y

Обновления на серверной ОС Ubuntu

Затем необходимо включить PPA (Personal Package Archive) от разработчика Ондржея Сури, для этого выполним следующие команды:

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

Включение PPA от разработчика Ондржея Сури

Сейчас можно приступать к установке PHP8, ниже покажем, как установить php8, в качестве модуля Apache, настроить с помощью PHP-FPM или же установить PHP8 с Nginx.

1. Как инсталлировать PHP 8 в качестве модуля Apache

Для начала установки введем команды:

sudo apt update
sudo apt install php8.0 libapache2-mod-php8.0

Установка PHP 8 в качестве модуля Apache

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

sudo systemctl restart apache2

Перезапуск Apache

Для установки PHP-FPM (fastCGI Process Manager, пакета, который выполняет обработку PHP-скриптов) необходимо выполнить команды:

sudo apt update
sudo apt install php8.0-fpm libapache2-mod-fcgid
Затем требуется включить PHP-FPM:
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.0-fpm

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

sudo systemctl restart apache2

А сейчас выполним проверку, какая же версия PHP у нас установлена (убедимся, что это 8-ая версия):

sudo php -v

Проверка версии PHP

2. Как инсталлировать PHP 8 вместе c Nginx

В веб-сервере Nginx нет встроенной поддержки обработки PHP файлов, поэтому следует воспользоваться PHP-FPM. Для инсталляции PHP и PHP-FPM введем следующие команды:

sudo apt update
sudo apt install php8.0-fpm

Служба PHP-FPM запустится автоматически, для проверки ее статуса следует ввести команду:

systemctl status php8.0-fpm

Проверка статуса службы PHP-FPM

На следующем шаге, вам нужно отредактировать серверный блок Nginx (англ. Nginx server block)*. Делается это для того, чтобы разрешить Nginx обрабатывать файлы на языке php. По умолчанию, файлы конфигурации серверных блоков Ngnix находятся в директории /etc/nginx/sites-available. Отредактировать такой файл можно командой (example.com — файл для примера):

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

Необходимо внести несколько строк в файл серверного блока:

server {

    # . . . other code

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

*Примечание: Серверные блоки (аналог виртуальных хостов в Apache) могут использоваться для размещения нескольких доменов на одном сервере, причем для каждого сайта вы можете задать свою директорию и отдельные настройки, см. пример:

/var/www/
??? test1.com
?   ??? html
??? test2.com
?   ??? html

Например, для каждого сайта есть образец html страницы: /var/www/test1.com/html/index.html

Такой файл содержит простой код и показывает к какому именно сайту обращается пользователь:

<html>
   <head>
       <title>Welcome to test1.com!</title>
   </head>
   <body>
       <h1>Success!  The server block is working!</h1>
   </body>
</html>

Для того, чтобы все наши настройки вступили в силу, выполним рестарт Nginx командой:

sudo systemctl restart nginx

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

Для выполнения различных задач на сервере веб-мастеру недостаточно только самого языка PHP, нужны еще различные расширения (специальные библиотеки, которые расширяют базовые функции PHP). Они могут быть доступны в виде пакетов и установить их можно, используя apt (ниже описан синтаксис команды):

sudo apt install php8.0-[extname]

Допустим, нам необходимо будет работать с базами данных и графикой, для этого сразу установим расширения MySQL и GD:

sudo apt install php8.0-mysql php8.0-gd

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

Для того, чтобы настройки вступили в силу, необходимо перезапустить Apache или PHP-FPM (в зависимости от способа, с помощью которого вы устанавливали PHP).

4. Тестирование обработки PHP 8.0 на веб-сервере

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

nano /var/www/html/info.php

Разместить в файле простой код:

<?php

phpinfo();

Редактирование info.php

Затем требуется сохранить данный файл и проверить его работу в браузере:

https://X.X.X.X/info.php

где X.X.X.X — IP-адрес веб-сервера, в нашем примере это будет https://178.20.153.253/info.php.

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

Информация о версии PHP и ее конфигурации

Инсталляция PHP 8.0 на сервер в качестве альтернативной версии языка PHP

В работе администратора веб-сервера часто встречаются задачи, которые требуют наличия на сервере сразу нескольких версий языка PHP. Например, у вас есть какие-то приложения для корпоративных задач, которые стабильно работают под старыми версиями PHP (5.6 или 7.3), но при этом, на одном из сайтов, вам необходимо опробовать какие-то новые функции и для этого нужна самая последняя версия PHP 8.0. В таком случае, веб-мастеру требуется оперировать сразу несколькими версиями PHP на сервере, а PHP 8.0 нужно доустановить, как альтернативную. Покажем на примерах, как это сделать.

Нам опять потребуется для работы PPA от Ондржея Сури, который позволяет устанавливать сразу несколько версий языка PHP (как установить этот PPA, см. в начале нашей статьи).

Итак, для начала необходимо вывести рабочую информацию о последней стабильной версии PHP, которая находится в репозитории Ubuntu 20 (по умолчанию):

sudo apt show php -a

Рабочая информация об уже установленной на сервере версии PHP

Ниже приведем команды для установки любой версии PHP из PPA от Ондржея Сури для Apache Web Server:

sudo apt install php5.6   
sudo apt install php7.0   
sudo apt install php7.1   
sudo apt install php7.2   
sudo apt install php7.3  
sudo apt install php7.4 
sudo apt install php8.0

На примере версий PHP 5.6 и 7.0 покажем процесс установки:

Установка версии PHP 5.6 из PPA от Ондржея Сури для Apache Web Server

Установка версии PHP 7.0 из PPA от Ондржея Сури для Apache Web Server

Естественно, если у вас стоит более старая версия PHP, то для установки восьмой версии, просто воспользуйтесь последней командой из этого списка.

Для установки различных версий PHP под Nginx Web Server команды будут следующие:

sudo apt install php5.6-fpm   
sudo apt install php7.0-fpm   
sudo apt install php7.1-fpm  
sudo apt install php7.2-fpm   
sudo apt install php7.3-fpm   
sudo apt install php7.4-fpm   
sudo apt install php8.0-fpm 

Какая версия у вас установлена, всегда можно проверить с помощью команды:

sudo php -v

Далее покажем, как установить дополнительные модули (расширения) для различных версий PHP на сервере (на примере версий 7.3 и 8.0):

sudo apt install php7.3-cli php7.3-xml php7.3-mysql
sudo apt install php8.0-cli php8.0-xml php8.0-mysql

Установка дополнительных модулей для различных версий PHP на сервере

Сейчас необходимо установить версию PHP, которая на сервере будет работать «по умолчанию», используя команду update-alternatives, (покажем на примере версий 7.3 и 8.0):

sudo update-alternatives --set php /usr/bin/php7.3
sudo update-alternatives --set php /usr/bin/php8.0

Последней командой мы выбираем восьмую версию PHP в качестве основной.

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

  • вначале нужно отключить текущую версию PHP (например, php 7.3) с помощью команды a2dismod,
  • затем включить нужную нам версию командой a2enmod (например, это будет версия php 7.4).
sudo a2dismod php7.3
sudo a2enmod php7.4
systemctl restart apache2

 После переключения версий, перегрузите веб-сервер Apache.

Когда вы переключились с одной версии PHP на другую, посмотреть место нахождения конфигурационного файла текущей версии возможно с помощью команды (к примеру, для версии 7.3):

sudo update-alternatives --set php /usr/bin/php7.3
php -i | grep "Loaded Configuration File"

Место нахождения конфигурационного файла текущей версии PHP

И для версии PHP8:

sudo update-alternatives --set php /usr/bin/php8.0
php -i | grep "Loaded Configuration File"

Заключение

В этой статье мы детально описали два способа инсталляции последней версии PHP 8.0, (в качестве основной версии «по умолчанию» и в качестве альтернативной версии на сервере с уже установленными другими версиями PHP). Также остановились на тонкостях установки PHP под Apache и Nginx, показали, как устанавливать различные расширения для PHP. В этой публикации затронут непростой вопрос по организации работы нескольких версий PHP на веб-сервере и выборе базовой версии для работы.

Хочется верить, что этот материал будет востребован у системных администраторов и веб-мастеров, которые занимаются как настройкой VPS, так и разработкой веб-приложений. Специалисты компании FREEhost всегда помогут вам с инсталляцией PHP 8.0 и его расширений, окажут содействие в настройке различных версий PHP на вашем VPS.

Наш виртуальный хостинг уже поддерживает PHP 8. Приглашаем Вас бесплатно протестировать работу своего сайта на новой версии PHP. Смотреть тарифные планы.

Дата: 29.12.2020
Автор: Евгений
Голосование

Авторам статьи важно Ваше мнение. Будем рады его обсудить с Вами:

comments powered by Disqus
Спасибо, что выбираете FREEhost.UA