PHP — популярный язык сценариев для веб-разработки. Он быстрый, гибкий и прагматичный.
PHP предлагает обширную поддержку различных баз данных, что делает его незаменимым инструментом для написания сценариев на стороне сервера.
В этом руководстве будут показаны шаги по установке PHP в Rocky Linux 9 или 8 с помощью командной строки. Метод установки предполагает использование репозитория Remi RPM для последних стабильных сборок PHP 8.1, 8.2 и 8.3.
Импорт Remi PHP RPM Repo
Обновите Rocky Linux перед установкой PHP
Начните с обновления вашей системы Rocky Linux, чтобы подготовиться к установке PHP. Откройте терминал и введите:
sudo dnf upgrade --refresh
Импорт репозитория PHP Remi
Настройка репозитория EPEL
EPEL (Дополнительные пакеты для Enterprise Linux) имеет решающее значение для дополнительных пакетов программного обеспечения в Rocky Linux. Ниже приведены два варианта установки EPEL в Rocky Linux для последней версии EL9 или EL8.
Импорт EPEL для Rocky Linux 9
Включение CRB
CRB предоставляет доступ к большему количеству инструментов разработки. Используйте команду:
sudo dnf config-manager --set-enabled crb
Установите репозитории EPEL
Чтобы получить последние версии EPEL для Rocky Linux 9 используйте команду:
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, разработанный для EL 9:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
Импорт EPEL для Rocky Linux 8
Включите репозиторий PowerTools
PowerTools необходим для инструментов разработки PHP.
sudo dnf config-manager --set-enabled powertools
Включить EPEL для Rocky Linux 8
Установите репозитории EPEL для Rocky Linux 8:
sudo dnf install \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm \
https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-8.noarch.rpm
Импортируйте репозиторий Remi EL 8
С установленным EPEL импортируйте Remi RPM, содержащий PHP для EL 8:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
Включите PHP (8.x) из репозитория Remi
Проверка версий PHP
Начните с подтверждения доступных версий PHP в репозитории Remi. Это гарантирует, что у вас будет доступ к желаемой версии PHP.
Выполните в терминале команду:
dnf module list php
При появлении запроса импортируйте ключ GPG для репозитория Remi, введя (Y).
Выбор вашей версии PHP
Включить PHP 8.3
Чтобы установить PHP 8.3, стабильную и последнюю версию, используйте команду:
sudo dnf module enable php:remi-8.3 -y
Включить PHP 8.2
Для PHP 8.2, подходит для приложений, требующих этой конкретной версии:
sudo dnf module enable php:remi-8.2 -y
Включить PHP 8.1
Включить PHP 8.1, подходящий для совместимости с определенными приложениями:
sudo dnf module enable php:remi-8.1 -y
Завершение установки PHP
Установка PHP для поддержки Apache или Nginx
После включения репозитория Remi PHP вы можете установить PHP, адаптированный к потребностям вашего веб-сервера, либо Apache, либо Nginx.
Apache (httpd) Установка PHP
sudo dnf install php php-cli -y
Установка Nginx PHP
sudo dnf install php-fpm php-cli -y
Проверка установки PHP
Проверьте установку PHP, запустив:
php -v
Установка расширений PHP
Устанавливайте необходимые расширения PHP в соответствии с потребностями вашего проекта. Избегайте установки всех расширений для поддержания оптимальной производительности и безопасности.
Стандартная установка
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
Упрощенная установка
Для компактной установки выполните команду:
sudo dnf install php-{cli,fpm,curl,mysqlnd,gd,opcache,zip,intl,common,bcmath,imagick,xmlrpc,json,readline,memcached,redis,mbstring,apcu,xml,dom,memcache}
Теперь давайте разберем, что делает каждое из этих расширений PHP:
- php-cli: интерфейс командной строки для PHP, полезный при запуске PHP-скриптов в командной оболочке.
- php-fpm: диспетчер процессов FastCGI, полезный для обработки и обслуживания PHP-запросов.
- php-curl: Позволяет подключаться и взаимодействовать с различными типами серверов и протоколов.
- php-mysqlnd: собственный драйвер MySQL, используемый для подключений к базе данных MySQL.
- php-gd: работа с графикой, полезное для создания файлов изображений и манипулирования ими.
- php-opcache: кэш кода операции, используемый для ускорения выполнения PHP.
- php-zip: Позволяет работать с zip-архивами.
- php-intl: расширение для интернационализации для работы с международными наборами символов и локалями.
- php-common: общие файлы и настройки, используемые несколькими модулями PHP.
- php-bcmath: двоичный калькулятор допускает математику произвольной точности.
- php-imagick: Предоставляет методы для создания и изменения изображений с использованием библиотеки ImageMagick.
- php-xmlrpc: Позволяет создать XML-RPC сервер и упрощает отправку XML-RPC запросов.
- php-json: расширение JSON (объектная нотация JavaScript) для кодирования и декодирования данных JSON.
- php-readline: позволяет считывать строку данных с терминала.
- php-memcached: Обеспечивает быстрое распределенное кэширование объектов памяти.
- php-redis: расширение PHP для взаимодействия с Redis.
- php-mbstring: многобайтовая строка для обработки строк, отличных от ASCII.
- php-apcu: APC User Cache, расширение для кэширования пользовательского пространства на основе APC.
- php-xml: XML-анализатор для разбора XML-документов.
- php-dom: объектная модель документа, позволяющая манипулировать XML-документами объектно-ориентированным способом.
- php-memcache: Предоставляет удобный процедурный и объектно-ориентированный интерфейс для memcached.
- php-soap: Используется для написания серверов и клиентов SOAP.
- php-ldap: облегченный протокол доступа к каталогам, используемый для доступа к информации каталога и управления ею.
- php-pdo: объекты данных PHP, уровень доступа к базе данных, обеспечивающий единый метод доступа к нескольким базам данных.
Вы можете использовать следующую команду для просмотра загруженных модулей в любое время.
php -m
Для повышения производительности рекомендуется регулярный мониторинг и удаление ненужных модулей.
Установка инструментов разработки PHP
Для целей разработки установите ветку разработки PHP и инструменты отладки:
Ветка разработки PHP
sudo dnf install php-devel
Инструменты отладки PHP
sudo dnf install php-xdebug php-pcov
Важно отметить, что установка этой версии приведет к появлению множества зависимостей, и это не рекомендуется делать, если у вас нет особой необходимости в этом при разработке PHP или каких-либо особых требований.
Настройка PHP-пользователя FPM Nginx на Rocky Linux
Настройка PHP-FPM для Nginx
Дистрибутивы на основе RHEL, такие как Rocky Linux, по умолчанию используют пользователя “Apache” для PHP-FPM, что не подходит для настроек Nginx. Важно изменить это для оптимальной работы с Nginx.
Редактирование конфигурации PHP-FPM
Открытие файла конфигурации
Получите доступ к www.conf
файлу для редактирования:
sudo nano /etc/php-fpm.d/www.conf
Измените настройки пользователей и групп
Измените пользователя и группу Apache на Nginx в файле.
Модификация будет выглядеть так:
Сохраните изменения, нажав (CTRL + O), затем завершите работу с помощью (CTRL + X).
Перезапуск PHP-службы FPM
После изменения конфигурации перезапустите PHP-FPM, чтобы применить изменения:
sudo systemctl restart php-fpm
Пример блочного кода сервера Nginx PHP-FPM
Настройка Nginx для обработки PHP
Чтобы Nginx мог обрабатывать файлы PHP, серверный блок должен быть настроен правильно. Следующий пример демонстрирует необходимые настройки в server{}
блоке для обработки файлов PHP.
Nginx PHP-конфигурация FPM
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
После обновления конфигурации проверьте ее, чтобы убедиться в отсутствии синтаксических ошибок.
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:
sudo systemctl restart nginx
Этот перезапуск необходим для внесения изменений и для того, чтобы Nginx начал обрабатывать PHP-файлы с новой конфигурацией.
Заключение
Хорошо, на этом наше путешествие заканчивается! Мы успешно настроили PHP на Rocky Linux, настроили его для Apache или Nginx и настроили PHP-FPM для оптимальной производительности. Помните, что регулярная проверка ваших модулей и конфигураций PHP обеспечивает бесперебойную работу. И не забывайте перезапускать свои службы после любых изменений.