Типы PHP-расширений
PHP-расширения расширяют возможности языка: добавляют поддержку баз данных, изображений, криптографии, сетевых протоколов. Существует два типа: встроенные (идут в комплекте с PHP) и PECL-расширения (устанавливаются отдельно через pecl или apt).
Просмотр установленных расширений
# Список всех загруженных расширений
php -m
# Проверить конкретное расширение
php -m | grep curl
# Подробная информация
php --ri gdУстановка расширений через apt
# Обновляем список пакетов
sudo apt update
# Устанавливаем расширения для PHP 8.2
sudo apt install php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml \
php8.2-zip php8.2-mysql php8.2-pgsql php8.2-redis \
php8.2-imagick php8.2-intl php8.2-bcmath php8.2-soap
# Перезапускаем PHP-FPM
sudo systemctl restart php8.2-fpmНеобходимые расширения для популярных CMS
| CMS / Фреймворк | Обязательные расширения |
|---|---|
| WordPress | curl, gd, mbstring, mysql, xml, zip, intl |
| Laravel | bcmath, ctype, curl, dom, fileinfo, json, mbstring, openssl, pdo, tokenizer, xml |
| Drupal | gd, pdo, xml, json, mbstring, dom, hash |
| Magento 2 | bcmath, curl, gd, intl, mbstring, pdo_mysql, soap, xsl, zip |
Установка PECL-расширений (Redis, Imagick)
# Redis через apt (рекомендуется)
sudo apt install php8.2-redis
# Imagick
sudo apt install php8.2-imagick
# Через PECL (если нет в apt)
sudo pecl install redis
echo "extension=redis.so" | sudo tee /etc/php/8.2/mods-available/redis.ini
sudo phpenmod redisУправление расширениями: phpenmod / phpdismod
# Включить расширение
sudo phpenmod -s fpm mbstring
# Отключить расширение
sudo phpdismod -s fpm xdebug
# Применить изменения
sudo systemctl reload php8.2-fpmДля разных версий PHP одновременно укажите нужную версию:
sudo apt install php7.4-curl php8.1-curl php8.2-curl — каждое расширение устанавливается независимо для каждой версии PHP.Компиляция расширения из исходников
sudo apt install php8.2-dev
pecl download xdebug
tar xf xdebug-*.tgz && cd xdebug-*
phpize && ./configure --with-php-config=/usr/bin/php-config8.2
make && sudo make install