Содержание
Установка PHP на FedoraServer
Подготовка
Обновление Fedora Linux
Перед установкой PHP и его расширений рекомендуется обновить систему. Следующая команда позволит выполнить обновление:
# dbf update
Импорт PHP репозитория Remi
Установка PHP репозитория Remi на системы Fedora это простой процесс, поскольку для этого не требуется EPEL, как в случае с RHEL и его производными. Для импорта запустите следующую команду, в зависимости от вашей версии Fedora.
Fedora 38
sudo dnf install http://rpms.remirepo.net/fedora/remi-release-38.rpm -y
Fedora 37
sudo dnf install http://rpms.remirepo.net/fedora/remi-release-37.rpm -y
Fedora 36
sudo dnf install http://rpms.remirepo.net/fedora/remi-release-36.rpm -y
Fedora 35
sudo dnf install http://rpms.remirepo.net/fedora/remi-release-35.rpm -y
После установки крайне важно проверить, что она прошла успешно:
dnf repolist | grep remi
Пример вывода:
[joshua@fedora-linux ~]$ dnf repolist | grep remi remi Remi's RPM repository - Fedora 37 - x86_64 remi-modular Remi's Modular repository - Fedora 37 - x86_64
Включение репозитория PHP Remi
Перед установкой различных версий PHP хорошей идеей будет проверить доступные в репозитории версии. Это позволит принять более взвешенное и обоснованное решение о установке необходимой версии пакета.
dnf module list php
Пример вывода:
# dnf module list php Последняя проверка окончания срока действия метаданных: 2:23:52 назад, Ср 28 июн 2023 07:16:28. Remi's Modular repository - Fedora 38 - x86_64 Name Stream Profiles Summary php remi-7.4 common [d], devel, minimal PHP scripting language php remi-8.0 common [d], devel, minimal PHP scripting language php remi-8.1 common [d], devel, minimal PHP scripting language php remi-8.2 common [d], devel, minimal PHP scripting language
Включение PHP 8.2 on Fedora
sudo dnf module enable php:remi-8.2 -y
Включение PHP 8.1 on Fedora
sudo dnf module enable php:remi-8.1 -y
Включение PHP 8.0 on Fedora
sudo dnf module enable php:remi-8.0 -y
Включение PHP 7.4 on Fedora
sudo dnf module enable php:remi-7.4 -y
Установка PHP
Apache (httpd) PHP
sudo dnf install php php-cli -y
Nginx PHP
sudo dnf install php-fpm php-cli -y
Для того чтобы убедиться что все прошло успешно можно выполнить следующую команду:
php -v
Установка расширений
Если вы хотите, вы можете запустить приведенную ниже команду, чтобы получить наиболее часто используемые расширения для выбранной вами версии PHP. Важно отметить, что вам следует удалить все расширения, которые, как вы знаете, не понадобятся для вашего конкретного случая использования.
# 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-{extension}.
# dnf install php-{cli,fpm,curl,mysqlnd,gd,opcache,zip,intl,common,bcmath,imagick,xmlrpc,json,readline,memcached,redis,mbstring,apcu,xml,dom,redis,memcached,memcache}
Приведенную ниже команду можно выполнить в любое время для просмотра загруженных в данный момент модулей.
php -m
Настройка пользователя Nginx для PHP-FPM
При установке PHP-FPM в дистрибутивах Linux, таких как Debian или Ubuntu, обычно используется пользователь www-data. Однако это не относится к установкам семейства RHEL. Служба PHP-FPM по умолчанию настроена для запуска под пользователем Apache, что несовместимо с Nginx. В результате конфигурация должна быть скорректирована для обеспечения правильного использования. Сначала необходимо открыть конфигурационный файл www.conf использую следующую команду:
# vim /etc/php-fpm.d/www.conf
В конфигурационном файле необходимо заменить пользователя и группу Apache на Nginx. Сохраните файл и закройте его. После изменения для применения настроек выполните команду:
# systemctl restart php-fpm
Пример блока кода PHP-FPM в Nginx
Чтобы Nginx мог обрабатывать PHP-файлы, серверный блок должен иметь определенную конфигурацию, как показано в примере ниже. Этот пример применим ко всем блокам Server{}, которые обрабатывают PHP-файлы, и важно включить location ~ .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 -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Чтобы завершить настройку PHP-FPM, необходимо перезапустить службу Nginx:
# systemctl restart nginx