Установка 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
Вам может быть предложено импортировать ключ GPG для репозитория Remi, чтобы продолжить установку.

Пример вывода:

# 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
main/linux/install-php.txt · Последнее изменение: 2024/10/28 08:44 — davlanas
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0