Оглавление
- Новая версия PHP 8.0
- Процесс установки PHP 8.0 на сервер под Ubuntu 20
- Как инсталлировать PHP 8 в качестве модуля Apache
- Как инсталлировать PHP 8 вместе c Nginx
- Установка расширений PHP 8.0
- Тестирование обработки PHP 8.0 на веб-сервере
- Инсталляция PHP 8.0 на сервер в качестве альтернативной версии языка PHP
- Заключение
Новая версия 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
Затем необходимо включить PPA (Personal Package Archive) от разработчика Ондржея Сури, для этого выполним следующие команды:
sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php
Сейчас можно приступать к установке PHP8, ниже покажем, как установить php8, в качестве модуля Apache, настроить с помощью PHP-FPM или же установить PHP8 с Nginx.
1. Как инсталлировать PHP 8 в качестве модуля Apache
Для начала установки введем команды:
sudo apt update sudo apt install php8.0 libapache2-mod-php8.0
После установки модуля PHP, перезапустим Apache:
sudo systemctl restart apache2
Для установки 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
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
На следующем шаге, вам нужно отредактировать серверный блок 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
Для того, чтобы настройки вступили в силу, необходимо перезапустить Apache или PHP-FPM (в зависимости от способа, с помощью которого вы устанавливали PHP).
4. Тестирование обработки PHP 8.0 на веб-сервере
После проведения всех инсталляционных работ, необходимо проверить правильно ли обрабатываются PHP-скрипты на сервере. Для этого нам нужно создать файл info.php в каталоге /var/www/html, запустить файл на редактирование:
nano /var/www/html/info.php
Разместить в файле простой код:
<?php phpinfo();
Затем требуется сохранить данный файл и проверить его работу в браузере:
http://X.X.X.X/info.php
где X.X.X.X — IP-адрес веб-сервера, в нашем примере это будет http://178.20.153.253/info.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 из 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, то для установки восьмой версии, просто воспользуйтесь последней командой из этого списка.
Для установки различных версий 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, которая на сервере будет работать «по умолчанию», используя команду 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"
И для версии 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