Как установить последнюю версию PHP 8 на Rocky Linux

1294
Как установить последнюю версию PHP 8 на Rocky Linux
Как установить последнюю версию PHP 8 на Rocky Linux

Согласно исследованиям W2techs, 79% всех веб-сайтов используют PHP в качестве языка программирования на стороне сервера. Более того, 67% веб-сайтов используют PHP версии 7, спустя 4 года после его первоначального выпуска. PHP — один из самых популярных серверных языков программирования для веб-сайтов. Некоторые известные веб-приложения основаны на PHP, такие как WordPress, Magento E-commerce, Wikipedia, Drupal и др.

Системный администратор

В настоящее время выпущена версия PHP 8 с дополнительными возможностями и улучшениями, включая именованные аргументы, типы объединения, атрибуты, продвижение свойств конструктора, выражение соответствия, оператор nullsafe, JIT, а также улучшения в системе типов, обработке ошибок и согласованности.

В этом руководстве вы узнаете, как установить PHP 8 на сервер Rocky Linux.

Необходимые условия
* Пользователь с привилегиями root. Убедитесь, что пользователь может выполнить команду `sudo su` для получения привилегий root, или вы можете просто использовать пользователя root.

Добавление репозиториев EPEL и Remi в Rocky Linux
Репозиторий Rocky Linux по умолчанию предоставляет пакеты PHP, но не для PHP версии 8.x. Для PHP версии PHP 8.x вы можете установить его из репозитория REMI.

1. Перед добавлением репозитория REMI необходимо добавить репозиторий EPEL (Extra Packages for Enterprise Linux), выполнив следующую команду.

sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Введите ‘y’ и нажмите ‘Enter’, чтобы добавить хранилище EPEL.

2. Теперь выполните команду ниже, чтобы добавить репозиторий REMI для Rocky Linux 8 / CentOS 8/ или RHEL 8.

sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Введите ‘y’ и нажмите ‘Enter’ еще раз, чтобы установить репозиторий REMI.

3. После завершения установки репозиториев EPEL и REMI выполните следующую команду для проверки списка доступных репозиториев в системе Rocky Linux.

sudo dnf repolist

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

repo id                   repo name
appstream                 Rocky Linux 8 - AppStream
baseos                    Rocky Linux 8 - BaseOS
epel                      Extra Packages for Enterprise Linux 8 - x86_64
epel-modular              Extra Packages for Enterprise Linux Modular 8 - x86_64
extras                    Rocky Linux 8 - Extras
remi-modular              Remi's Modular repository for Enterprise Linux 8 - x86_64
remi-safe                 Safe Remi's RPM repository for Enterprise Linux 8 - x86_64

Включение репозитория Remi для PHP 8.0

На этом этапе вы включите репозиторий REMI для PHP 8.x и переключите модуль для PHP на репозиторий REMI вместо репозитория AppStream.

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

sudo dnf module reset php

При первом запуске команды dnf после добавления репозитория Remi вам будет предложено принять gpg-ключ репозитория Remi.

Введите ‘y’ и нажмите ‘Enter‘, чтобы добавить ключ Remi gpg.

2. Теперь проверьте доступные модули PHP в вашей системе с помощью следующей команды.

sudo dnf module list php

Как видно ниже, существует 2 репозитория PHP stream. Репозиторий Rocky Linux AppStream по умолчанию и модульный репозиторий Remi. По умолчанию PHP установлен PHP 7.2 из репозитория AppStream.

Rocky Linux 8 - AppStream
Name                  Stream                        Profiles                            Summary                        
php                   7.2 [d]              common [d], devel, minimal            PHP scripting language                
php                   7.3                  common [d], devel, minimal            PHP scripting language                
php                   7.4                  common [d], devel, minimal            PHP scripting language                

Remi's Modular repository for Enterprise Linux 8 - x86_64
Name                  Stream                        Profiles                            Summary                        
php                   remi-7.2             common [d], devel, minimal            PHP scripting language
php                   remi-7.3             common [d], devel, minimal            PHP scripting language
php                   remi-7.4             common [d], devel, minimal            PHP scripting language                
php                   remi-8.0 [e]         common [d], devel, minimal            PHP scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

3. Теперь измените установку пакетов PHP по умолчанию на репозиторий Remi PHP 8.x с помощью команды.

sudo dnf module enable php:remi-8.0

Введите ‘y’ и нажмите ‘Enter’, чтобы включить репозиторий PHP 8.x Remi, и вы готовы к установке PHP 8 на Rocky Linux.

Установка PHP 8.0 на Rocky Linux

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

sudo dnf install php

Теперь введите ‘y’ и нажмите ‘Enter‘, чтобы установить PHP 8x.

2. После завершения установки проверьте версию PHP с помощью следующей команды.

php --version

Теперь убедитесь, что вы получили аналогичный вывод PHP 8.0, как показано ниже.

PHP 8.0.9 (cli) (built: Jul 29 2021 12:53:58) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.9, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.9, Copyright (c), by Zend Technologies

Установка PHP-FPM 8.0 на Rocky Linux

PHP-FPM (FastCGI Process Manager) является альтернативной и наиболее популярной реализацией PHP FastCGI. Он поставляется с дополнительными возможностями, такими как управление пулами, ограничение, ограничение на каждый пул и т.д. PHP-FPM подходит для сайтов как с низким, так и с высоким трафиком. Особенно для сайтов с высоким трафиком, вы можете использовать управление пулами php-fpm для улучшения производительности ваших сайтов.

1. Чтобы установить php-fpm на Rocky Linux, выполните команду DNF, приведенную ниже.

sudo dnf install php-fpm

Введите ‘y‘ и нажмите ‘Enter‘, чтобы установить пакеты php-fpm.

2. После завершения установки запустите службу php-fpm и включите ее автоматический запуск при каждой загрузке с помощью следующей команды.

sudo systemctl enable --now php-fpm

Теперь вы должны увидеть результат, аналогичный приведенному ниже.

Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.

3. Теперь проверьте состояние службы php-fpm с помощью команды ниже.

sudo systemctl status php-fpm

Если ваш php-fpm запущен, вы должны увидеть ‘active (running)‘, как показано ниже. В противном случае вы можете увидеть вывод типа ‘exited‘.

? php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2021-08-02 07:58:33 UTC; 8s ago
 Main PID: 3964 (php-fpm)
   Status: "Ready to handle connections"
    Tasks: 6 (limit: 11156)
   Memory: 12.8M
   CGroup: /system.slice/php-fpm.service
           ??3964 php-fpm: master process (/etc/php-fpm.conf)
           ??3965 php-fpm: pool www
           ??3966 php-fpm: pool www
           ??3967 php-fpm: pool www
           ??3968 php-fpm: pool www
           ??3969 php-fpm: pool www

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

Репозиторий Remi предоставляет не только новую версию PHP 8.x, но и дополнительные расширения PHP, которых нет в репозитории AppStream, например, php-imagick, php-mcrypt и т.д.

1. Для установки дополнительных расширений PHP можно воспользоваться командой ‘dnf install’ и указать в качестве имени ‘php-extension‘.

Выполните приведенную ниже команду для установки модуля php-mcrypt.

sudo dnf install php-mcrypt

Введите ‘y‘ и нажмите ‘Enter‘, чтобы установить расширение php-mcrype.

2. Кроме того, для установки нескольких расширений PHP можно использовать формат ‘php-{extension1,extension2,extension3,etc}’.

Выполните приведенный ниже пример команды для установки нескольких PHP-расширений php-imagick, php-apcu, php-geoip, php-memcached и php-zstd.

sudo dnf install php-{imagick,apcu,geoip,memcached,zstd}

3. После этого проверьте все доступные расширения PHP в вашей системе, выполнив следующую команду.

php -m

И вы увидите название каждого модуля PHP, доступного в вашей системе, как показано ниже.

apcu
bz2
calendar

...

geoip
zlib
zstd

[Zend Modules]
Zend OPcache

Кроме того, вы можете использовать команду ‘grep‘ для фильтрации имени расширения php, как показано ниже.

php -m | grep imagick

Если расширение php-imagick доступно в вашей системе, вы должны увидеть результат, как показано ниже.

imagick

В противном случае вы получите пустой результат.

Заключение
Поздравляем! Вы узнали, как установить PHP 8.x на Rocky Linux. Вы можете установить PHP или PHP-FPM с дополнительными расширениями, которые вам необходимы, из репозитория Remi. И теперь вы готовы к развертыванию ваших PHP веб-приложений. Кроме того, всегда проверяйте требования веб-приложений PHP, которые вы хотите установить.