Перейти к основному содержимому

Установка PHP

Руководство по установке и настройке PHP для продакшена.

Установка PHP 8.4 на Ubuntu/Debian

Добавление репозитория Ondrej

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update

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

sudo apt install php8.4 php8.4-fpm php8.4-cli php8.4-common \
php8.4-mysql php8.4-zip php8.4-gd php8.4-mbstring \
php8.4-curl php8.4-xml php8.4-bcmath php8.4-json \
php8.4-intl php8.4-soap php8.4-opcache php8.4-redis \
php8.4-imagick php8.4-xdebug -y

Проверка установки

php -v
php-fpm8.4 -v
systemctl status php8.4-fpm

Установка на CentOS/RHEL

Добавление репозитория Remi

sudo dnf install epel-release -y
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
sudo dnf module reset php -y
sudo dnf module enable php:remi-8.3 -y

Установка пакетов

sudo dnf install php php-fpm php-cli php-common \
php-mysqlnd php-zip php-gd php-mbstring \
php-curl php-xml php-bcmath php-json \
php-intl php-soap php-opcache php-redis \
php-imagick php-xdebug -y

Базовая настройка

Запуск и автозагрузка

sudo systemctl enable php8.4-fpm
sudo systemctl start php8.4-fpm
sudo systemctl status php8.4-fpm

Основные конфигурационные файлы

  • PHP-FPM: /etc/php/8.4/fpm/
  • CLI: /etc/php/8.4/cli/
  • Пулы: /etc/php/8.4/fpm/pool.d/

Создание пула для приложения

sudo cp /etc/php/8.4/fpm/pool.d/www.conf /etc/php/8.4/fpm/pool.d/myapp.conf

Редактируем /etc/php/8.4/fpm/pool.d/myapp.conf:

[myapp]
user = www-data
group = www-data

listen = /run/php/php8.4-fpm-myapp.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500

php_admin_value[disable_functions] = exec,passthru,shell_exec,system
php_admin_flag[allow_url_fopen] = off

Перезапуск сервиса

sudo systemctl restart php8.4-fpm
sudo systemctl reload nginx