PHP — это широко используемый серверный скриптовый язык, предназначенный для веб-разработки. Он особенно популярен для создания динамичных и интерактивных веб-сайтов. Установка последних версий PHP, таких как 8.3, 8.2 или 8.1, гарантирует доступ к новейшим функциям, улучшениям производительности и исправлениям безопасности. В CentOS Stream 9 вы можете легко установить эти версии, используя репозиторий Remi RPM, который хорошо известен тем, что предоставляет актуальные пакеты PHP.
Это руководство покажет процесс включения репозитория Remi и установки последних сборок PHP в CentOS Stream 9.
Импорт Remi PHP RPM на CentOS
Обновление CentOS Stream перед установкой PHP
Начинаем с обновления вашей системы CentOS Stream, чтобы убедиться, что все существующие пакеты обновлены. Этот шаг необходим для стабильности и безопасности системы.
Откройте свой терминал и выполните следующую команду для обновления вашей системы:
sudo dnf upgrade --refresh
Эта команда обновляет вашу базу данных пакетов и обновляет все установленные пакеты до их последних доступных версий.
Импорт репозитория Remi PHP RPM
Репозиторий Remi PHP — это сторонний репозиторий, предлагающий последние версии PHP. Перед добавлением репозитория Remi необходимо установить репозиторий EPEL, который предоставляет дополнительные пакеты для Enterprise Linux.
Рекомендуется включить репозиторий CodeReady Linux Builder (CRB), хотя это необязательно. Он предоставляет дополнительные инструменты и библиотеки разработчика. Включите CRB с помощью команды:
sudo dnf config-manager --set-enabled crb
После включения CRB установите репозиторий EPEL для EL9 с помощью команды:
sudo dnf install \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm \
https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-9.noarch.rpm
Наконец, импортируем репозиторий Remi PHP для EL9:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
Включение репозитория PHP Remi в CentOS Stream
Список доступных модулей PHP
Перед установкой PHP важно определить доступные версии PHP в репозитории Remi. Этот шаг поможет вам выбрать версию.
Используйте следующую команду, чтобы перечислить все модули PHP:
dnf module list php
Эта команда отображает все версии PHP, доступные в репозитории Remi. Это шаг, позволяющий убедиться, что вы выбрали версию, которая наилучшим образом соответствует вашим требованиям.
Импорт GPG-ключа для репозитория Remi
При появлении запроса вы должны подтвердить импорт GPG-ключа для репозитория Remi. Этот шаг нужен по соображениям безопасности, поскольку он проверяет подлинность пакетов, которые вы собираетесь установить. Введите ‘Y’, когда вас попросят продолжить импорт.
Активация желаемой версии PHP
После подтверждения доступных версий PHP вы можете включить конкретную версию, соответствующую вашим потребностям. Желательно выбрать стабильную и хорошо поддерживаемую версию PHP для ваших проектов.
Чтобы включить определенную версию PHP из репозитория Remi, используйте следующие команды:
sudo dnf module enable php:remi-8.3 -y
sudo dnf module enable php:remi-8.2 -y
sudo dnf module enable php:remi-8.1 -y
Каждая команда активирует другую версию PHP из репозитория Remi. Выберите команду, соответствующую версии, которую вы хотите установить. Флаг ‘-y’ в этих командах указывает на автоматическое подтверждение установки, упрощая процесс.
Установка PHP 8.3, 8.2 или 8.1 в CentOS Stream
Выбор веб-сервера для установки PHP
Выбор подходящего веб-сервера является ключевым шагом в настройке PHP. CentOS Stream поддерживает как Apache, так и Nginx, для каждого из которых требуются разные пакеты PHP.
Apache (httpd) Установка PHP
Для тех, кто использует Apache в качестве веб-сервера, следующая команда устанавливает PHP вместе с интерфейсом командной строки PHP (CLI), который необходим для запуска PHP-скриптов из командной строки:
sudo dnf install php php-cli -y
Установка Nginx PHP
Если вы используете Nginx, вам необходимо установить PHP FastCGI Process Manager (FPM) вместе с PHP CLI. PHP-FPM — это альтернативная реализация PHP FastCGI, которая очень эффективна для сайтов с интенсивным трафиком:
sudo dnf install php-fpm php-cli -y
Проверка установки PHP
После установки важно убедиться, что PHP установлен правильно. Выполните следующую команду, чтобы проверить установленную версию PHP:
php -v
Эта команда отображает текущую версию PHP, подтверждая успешную установку.
Установка распространенных расширений PHP
Для улучшения функциональности PHP может потребоваться установка дополнительных расширений. Приведенная ниже команда устанавливает часто используемые расширения PHP, которые необходимы для различных платформ CMS и потребностей разработки:
sudo dnf install php-cli php-fpm php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml php-dom php-redis php-memcached php-memcache
Рекомендуется просмотреть и исключить те расширения, которые не являются необходимыми для вашей установки.
Просмотр загруженных модулей PHP
Чтобы проверить загруженные в данный момент модули PHP, выполните:
php -m
Для поддержания оптимальной производительности системы рекомендуется регулярно отслеживать и удалять ненужные модули.
Установка ветки разработки PHP
Для конкретных требований к разработке вам может понадобиться ветка PHP development. Установите ее с помощью:
sudo dnf install php-devel
Примечание: Эта установка вводит несколько зависимостей. Устанавливайте ветку только в том случае, если в этом есть особая потребность.
Добавление инструментов разработки PHP
Для расширенных функций разработки, включая отладку, установите дополнительные инструменты с помощью команды:
sudo dnf install php-xdebug php-pcov
Эти инструменты необходимы для отладки и анализа покрытия кода в PHP, но будьте осторожны с дополнительными зависимостями, которые они привносят.
Настройка пользователя Nginx для PHP-FPM в CentOS Stream
Редактирование конфигурации PHP-FPM для Nginx
В CentOS Stream для PHP-FPM по умолчанию используется сервер ‘Apache’, что несовместимо с настройками Nginx. Чтобы оптимизировать PHP-FPM для Nginx, необходимо изменить конфигурацию.
Доступ к конфигурации PHP-FPM
Начните с открытия файла конфигурации PHP-FPM. Этот файл содержит настройки, специфичные для взаимодействия PHP-FPM с вашим веб-сервером. Используйте следующую команду для редактирования www.conf файла:
sudo nano /etc/php-fpm.d/www.conf
Эта команда запускает текстовый редактор Nano с файлом конфигурации PHP-FPM.
Изменение настроек пользователя и группы
В файле конфигурации найдите строки, указывающие пользователя и группу. По умолчанию для них задано значение ‘Apache’. Измените пользователя и группу на ‘Nginx’, чтобы согласовать службу PHP-FPM с Nginx:
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
Вот примеры:
Сохранение и выход из файла конфигурации
После внесения изменений сохраните файл, нажав CTRL + O, а затем завершите работу с помощью CTRL + X. Это действие сохраняет изменения и закрывает редактор Nano.
Перезапуск PHP-службы FPM
Чтобы применить изменения, перезапустите службу PHP-FPM с помощью команды:
sudo systemctl restart php-fpm
Эта команда гарантирует, что PHP-FPM будет работать под управлением пользователя и группы Nginx, обеспечивая совместимость и повышенную безопасность для вашего веб-сервера Nginx.
Настройка Nginx для обработки PHP
Чтобы включить обработку PHP в Nginx в CentOS Stream, необходимо изменить блок в файле конфигурации Nginx. Следующий пример демонстрирует необходимую конфигурацию для обработки файлов PHP. Для этой настройки требуется указать блок расположения PHP.
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Этот код гарантирует, что Nginx корректно обрабатывает PHP-файлы, перенаправляя их в PHP-FPM. Вот краткая информация:
- location ~ .php $: Эта директива предписывает Nginx применять следующие правила к любому файлу, заканчивающемуся на .php. Тильда ~ указывает, что это соответствие регулярному выражению.
- try_files $uri = 404: в этой строке проверяется, существует ли PHP-файл с указанным URI. Если этого не происходит, Nginx возвращает ошибку 404. Это мера безопасности для предотвращения несанкционированного выполнения скрипта.
- fastcgi_pass unix:/run/php-fpm/www.sock;: Эта директива определяет сокет, который прослушивает служба PHP-FPM. В этом случае Nginx передает PHP-запросы процессу PHP-FPM через сокет /run/php-fpm/www.sock.
- fastcgi_index index.php ;: Тут index.php устанавливается в качестве скрипта по умолчанию, который будет выполняться при обращении к каталогу.
- fastcgi_param SCRIPT_FILENAME $document_root $fastcgi_script_name;: В этой строке задается параметр SCRIPT_FILENAME, который необходим PHP-FPM для поиска файла сценария в файловой системе. Он объединяет корневой каталог документа и имя скрипта.
- include fastcgi_params;: Сюда входят параметры FastCGI по умолчанию, предоставляемые Nginx. Это стандартные настройки, необходимые для корректной работы PHP-FPM.
Эта конфигурация гарантирует, что Nginx корректно обрабатывает запросы PHP, передавая их в службу PHP-FPM для обработки, что является важным шагом для запуска веб-сайтов и приложений на базе PHP на сервере Nginx.
Проверка конфигурации Nginx
После обновления этого блока проверьте конфигурацию Nginx на наличие синтаксических ошибок с помощью следующей команды:
sudo nginx -t
Пример вывода, подтверждающий успешную проверку синтаксиса:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Этот шаг гарантирует, что ваша конфигурация Nginx не содержит синтаксических ошибок и готова к работе.
Перезапуск службы Nginx
Чтобы применить изменения конфигурации PHP-FPM, перезапустите службу Nginx командой:
sudo systemctl restart nginx
На этом всё, настройки применены, ваша система готова к работе.
Заключение
Устанавливая PHP через репозиторий Remi RPM в CentOS Stream 9, вы гарантируете, что ваша система оснащена последними стабильными версиями PHP, включая 8.3, 8.2 и 8.1. Эта настройка обеспечивает вам повышенную производительность, доступ к новейшим функциям и повышенную безопасность ваших веб-приложений. Регулярное обновление PHP через репозиторий Remi обеспечит безопасность вашей системы и будет соответствовать последним разработкам в PHP.