Какие расширения и библиотеки PHP необходимы и/или используются в WordPress?
В Codex кратко упоминается только версия PHP в системных требованиях, однако PHP можно настроить с широким диапазоном включения/исключения различных компонентов.
Какие расширения/библиотеки:
- необходимы для работы WordPress в принципе? MySQL...
- требуются для определенных функций? GD ?...
- предпочтительны для оптимальной работы определенных функций? cURL...
- обычно используются плагинами? Zip...
Я подумал об этом ещё раз и, учитывая размер кодовой базы WordPress (включая встроенные библиотеки), составление такого списка вручную кажется не очень реалистичным (и повторять это для каждой новой версии — не вариант).
Я нашёл подходящий инструмент для статического анализа кода — PHP_CompatInfo — и после некоторых экспериментов сгенерировал следующий отчёт о расширениях, используемых ядром (просканирована версия 3.3.1):
cURL — 127 использований (требует libcurl)
- HTTP API (класс
WP_Http_curl
) url_is_accessable_via_ssl()
SimplePie(переопределён классомWP_SimplePie_File
)GoogleSpell(из пакета TinyMCE, не используется?)
- HTTP API (класс
Date/Time — 367 использований
DOM — 6 использований (требует libxml)
iis7_rewrite_rule_exists()
iis7_delete_rewrite_rule()
iis7_add_rewrite_rule()
saveDomDocument()
POSIX Regex — 23 использования
Filter — 2 использования
- класс
PHPMailer->ValidateAddress()
(опционально)
- класс
FTP — 72 использования
- класс
ftp_base
- класс
ftp
(pure и sockets версии) - класс
WP_Filesystem_FTPext
- класс
WP_Filesystem_ftpsockets
- класс
GD — 56 использований
wp-admin\includes\image-edit.php
wp-admin\includes\image.php
wp-includes\media.php
Hash — 6 использований
wp-includes\pluggable.php
несколько использований (опционально — запасной вариант вwp-includes\compat.php
)
iconv — 5 использований
- класс
SimplePie
(опционально) wp_check_invalid_utf8()
(опционально)wp-mail.php
(опционально)
- класс
JSON — 20 использований
- опционально, запасные варианты в
wp-includes/compat.php
- опционально, запасные варианты в
libxml — 4 использования
- класс
WP_oEmbed->_parse_xml()
(опционально) - SimplePie
- класс
Multibyte String — 29 использований
- некоторые запасные варианты в
wp-includes/compat.php
- некоторые запасные варианты в
MySQL — 60 использований
- класс
wpdb
класс(переопределён классомSimplePie_Cache
WP_Feed_Cache
)
- класс
OpenSSL — 4 использования
- класс
PHPMailer
- класс
PCRE — 743 использования
SimpleXML — 1 использование
- класс
WP_oEmbed
(похоже, опционально)
- класс
Sockets — 64 использования
- класс
ftp
(реализация черезsockets
)
- класс
SPL — 3 использования
Tokenizer — 3 использования
wp_doc_link_parse()
(опционально)
XML Parser — 89 использований
XMLReader — 1 использование
- SimplePie (похоже, опционально)
Zlib — 30 использований

Отличный ресурс. К счастью, большинство расширений и библиотек выше теперь компилируются по умолчанию в PHP 5.2.4 и выше.

@Chris_O если соблюдены настройки по умолчанию... Неоднократно упоминалось командой разработчиков ядра, что в дикой природе встречаются очень странные конфигурации PHP. Что побудило меня задать этот вопрос — на работе был приобретен VPS у нового хостинг-провайдера, и неожиданно он оказался с минимальной конфигурацией, где отсутствовали некоторые типичные расширения. Было бы удобнее предоставлять поддержку с таким чек-листом расширений, чем обнаруживать и просить их установку по одному.

@jgraup ZipArchive или PclZip, см. связанные функции распаковки http://queryposts.com/?s=unzip_file

Для v4.7 и новой встроенной поддержки миниатюр/предпросмотра PDF ваш сервер должен поддерживать Imagick, ImageMagick и Ghostscript.

Ответ на этот вопрос может быть сложным и очень длинным, насколько я знаю, также будут некоторые различия между серверами и ОС (IIS, Apache). Я не могу сказать, что следующий список является ПОЛНЫМ, но он включает некоторые из тех, которые, как мне известно, необходимы:
Curl и CurlSSL – Не уверен, что это ОБЯЗАТЕЛЬНО, но большая часть кода WordPress будет использовать их, если они доступны. Однако многие плагины ДЕЙСТВИТЕЛЬНО требуют их и/или имеют ограниченную функциональность без них.
Exif – позволяет обработчику медиафайлов WordPress извлекать Exif-данные из изображений.
Gettext – обработка .po и .mo файлов для перевода, локализации, интернационализации.
FTP – используется для обновления плагинов и WordPress через FTP.
GD – Не нуждается в представлении, верно?
Iconv – преобразование кодировок для всего: от почты до парсинга RSS.
Mbregex и Mbstring – название довольно описательное – предоставляют функции, используемые повсеместно.
Mcrypt – Не требуется для WordPress, но многие плагины нуждаются в нём.
Mime Magic – Устарело в WordPress, но всё ещё полезно для обратной совместимости.
Mysql и системный Mysql – все мы знаем, что это и зачем нужно, верно?
Openssl – Эта библиотека используется для обработки соединений, зашифрованных SSL-сертификатами, чтобы WordPress мог подключаться к любым SSL (https) ресурсам.
POSIX – используется для корректного управления правами доступа и владельцами файлов в WordPress.
Path Info Check – некоторые настройки постоянных ссылок.
Pspell – добавляет TinyMCE функцию проверки орфографии.
Sockets – управление FTP-соединениями и обработка почты (SMTP и POP) в WordPress.
Zip – Не уверен, что ОБЯЗАТЕЛЬНО, но этот кроссплатформенный класс для создания и извлечения zip-архивов будет использоваться WordPress, если доступен.
Zlib – Используется во многих случаях, например, для сжатия JS и CSS файлов. Опять же, не уверен, что ОБЯЗАТЕЛЬНО, но необходимо.
Как уже сказано выше – это ни в коем случае не ПОЛНЫЙ список. Он был составлен около года назад и, возможно, требует обновления. Многие из этих функций не являются строго ОБЯЗАТЕЛЬНЫМИ, но РЕКОМЕНДУЕМЫМИ. Во многих случаях WordPress будет использовать функцию, ЕСЛИ она доступна, а если нет – проигнорирует задачу. Хороший пример – отсутствие библиотеки GD. Это не остановит работу WordPress, но изображения не будут обрезаться, изменяться в размере или обрабатываться, оставляя исходные (и делая недоступной опцию "размер" в функции "вставить изображение в пост").
В качестве примечания: возможно, этот вопрос получит более точные/обновлённые ответы на serverfault.com, чем здесь.

(Это не является ответом. Просто полезная информация. Если вы считаете, что эта информация бесполезна, дайте мне знать, я просто удалю её.)
Я думаю, что для новичков будет проще говорить в терминах пакетов, но поскольку пакеты различаются в зависимости от системы, сложно охватить их все.
Поскольку у меня есть опыт работы с Debian (& дистрибутивами на основе Debian), я хотел бы поделиться этой специфической информацией:
- php5-cli
- php5-dev
- php5-fpm
- php5-cgi
- php5-mysql
- php5-xmlrpc
- php5-curl
- php5-gd
- php-apc (не обязательно, но рекомендуется)
- php-pear
- php5-imap
- php5-mcrypt
- php5-pspell
Упомянутые пакеты устанавливают все расширения/библиотеки/модули, о которых говорится в других ответах; все, кроме Mime Magic, который больше не требуется WordPress.
Ещё один хороший способ убедиться, что ваш сервер на 100% совместим с WordPress — проверить, какие пакеты предустановлены у управляемых хостинг-компаний. Поскольку у них есть многолетний опыт работы с жалобами клиентов на несовместимости, они знают лучше.
В случае с Hostgator, предустановленные PHP-модули включают (вам, вероятно, понадобятся большинство, но не все):
Media Temple предоставляет файл phpinfo();
для проверки их конфигурации. Это также полезно для сравнения.

Для чего WordPress нужны php5-cli, php5-dev, (php5-fpm && php5-cgi), php5-pear, php5-imap и php5-pspell? Ваш подход кажется таким: просто установить всё подряд, и это плохой подход. Также плоха идея, что нужно имитировать окружение shared-хостинга, если у вас есть контроль над установкой. Кроме того, следует выбрать один способ запуска PHP (FastCGI или CGI), но не оба сразу.

Если вам нужен простой способ проверить, соответствует ли ваш сервер этим требованиям, теперь есть удобная команда WP-CLI ext для этого.
wp ext required
показывает все PHP-расширения, необходимые для работы WordPress, а wp ext recommended
отображает опциональные. wp ext check
объединяет обе команды.
Они пригодятся, когда нужно быстро проверить системные требования на новом сервере и/или если вы хотите программно обработать этот список.
Вот как работает wp ext required
:
$ wp ext required
+-----------+-----------+
| extension | installed |
+-----------+-----------+
| curl | 1 |
| date | 1 |
| dom | 1 |
| filter | 1 |
| ftp | 1 |
| gd | 1 |
| hash | 1 |
| iconv | 1 |
| json | 1 |
| libxml | 1 |
| mbstring | 1 |
| mysqli | 1 |
| openssl | 1 |
| pcre | 1 |
| posix | 1 |
| SimpleXML | 1 |
| sockets | 1 |
| SPL | 1 |
| tokenizer | 1 |
| xml | 1 |
| xmlreader | 1 |
| zlib | 1 |
+-----------+-----------+
Success: Все необходимые расширения установлены

Я разработал свой проверщик окружения WordPress. Это простой класс, который работает как через веб-сервер, так и через CLI. Это поддерживаемая версия https://github.com/szepeviktor/debian-server-tools/blob/master/webserver/php-env-check.php
<?php
/**
* Проверка окружения PHP.
*
* Использование через веб-сервер
* wget -q -O - "https://example.com/php-env-check.php"; echo
* Использование через CLI
* php /path/to/php-env-check.php
*
* @package php-env-check
* @version 0.2.0
* @author Viktor Szépe <viktor@szepe.net>
*/
namespace O1;
// Доступ только локальный
if ( php_sapi_name() !== 'cli' && $_SERVER['REMOTE_ADDR'] !== $_SERVER['SERVER_ADDR'] ) {
header( 'Status: 403 Forbidden' );
header( 'HTTP/1.1 403 Forbidden', true, 403 );
header( 'Connection: Close' );
exit;
}
// Удалить кешированную версию этого файла
if ( function_exists( 'opcache_invalidate' ) {
opcache_invalidate( __FILE__ );
}
// Проверить окружение
$check = new Check_Env();
$status = empty( $check->errors );
// Вывести отчет и завершить
print json_encode( $check->errors );
exit( $status ? 0 : 1 );
/**
* Проверка конфигурации PHP.
*/
final class Check_Env {
/**
* Список ошибок.
*/
public $errors = array();
/**
* Запуск проверок.
*
* @param void
*/
public function __construct() {
// Расширения для WordPress на PHP 7.0
// http://wordpress.stackexchange.com/a/42212
// Версия движка
$this->assert( 'php', 70013, PHP_VERSION_ID );
// Основные директивы
$this->assert_directive( 'expose_php', '' );
$this->assert_directive( 'allow_url_fopen', '' );
$this->assert_directive( 'mail.add_x_header', '' );
$this->assert_directive( 'realpath_cache_size', '64k' );
$this->assert_directive( 'max_execution_time', '30' );
$this->assert_directive( 'memory_limit', '128M' );
$this->assert_directive( 'max_input_vars', '1000' );
$this->assert_directive( 'post_max_size', '4M' );
$this->assert_directive( 'upload_max_filesize', '4M' );
// Встроенные расширения
// php -n -m | paste -s -d " "
// Core date filter hash libxml openssl pcntl pcre Reflection session SPL standard zlib
$this->assert_extension( 'date' );
$this->assert_directive( 'date.timezone', 'Europe/Budapest' );
$this->assert_extension( 'filter' );
$this->assert_extension( 'hash' );
$this->assert_extension( 'openssl' );
$this->assert_extension( 'pcre' );
$this->assert_extension( 'SPL' );
$this->assert_extension( 'zlib' );
// Общие расширения
// dpkg -L php7.0-common | sed -n -e 's|^/usr/lib/php/\S\+/\(\S\+\)\.so$|\1|p' | paste -s -d " "
// ctype iconv gettext tokenizer sockets pdo sysvsem fileinfo posix exif sysvmsg phar ftp calendar sysvshm shmop
$this->assert_extension( 'ctype' ); // wp-includes/ID3/getid3.lib.php
$this->assert_extension( 'posix' );
$this->assert_extension( 'exif' ); // wp-admin/includes/image.php
$this->assert_extension( 'ftp' );
$this->assert_extension( 'gettext' ); // _()
$this->assert_extension( 'iconv' );
$this->assert_extension( 'mbstring' );
$this->assert_extension( 'sockets' );
$this->assert_extension( 'tokenizer' );
// php7.0-json
$this->assert_extension( 'json' );
// php7.0-intl
$this->assert_extension( 'intl' );
// php7.0-xml
// wddx xml simplexml xmlwriter xmlreader dom xsl
$this->assert_extension( 'xml' );
$this->assert_extension( 'SimpleXML' );
$this->assert_extension( 'xmlreader' );
$this->assert_extension( 'dom' );
// php7.0-curl
$this->assert_extension( 'curl' );
// php7.0-gd
$this->assert_extension( 'gd' );
// php7.0-mysql
// mysqlnd mysqli pdo_mysql
// WP_USE_EXT_MYSQL будет использовать mysqli через mysqlnd (без PDO)
$this->assert_extension( 'mysqlnd' );
$this->assert_extension( 'mysqli' );
// php7.0-opcache
$this->assert_extension( 'Zend OPcache', 'ext.opcache' );
$this->assert_directive( 'opcache.restrict_api', '/home/prg123' );
$this->assert_directive( 'opcache.memory_consumption', '256' );
$this->assert_directive( 'opcache.interned_strings_buffer', '16' );
$this->assert_directive( 'opcache.max_accelerated_files', '10000' );
// Устаревшие расширения
$this->assert_disabled_extension( 'mcrypt' );
$this->assert_disabled_extension( 'mysql' );
// Отключенные расширения
// calendar fileinfo pcntl PDO pdo_mysql Phar readline
// shmop sysvmsg(System V messages) sysvsem(System V semaphore) sysvshm(System V shared memory) wddx xmlwriter xsl
$this->assert_disabled_extension( 'calendar' );
$this->assert_disabled_extension( 'fileinfo' );
$this->assert_disabled_extension( 'pcntl' );
$this->assert_disabled_extension( 'PDO' );
$this->assert_disabled_extension( 'pdo_mysql' );
$this->assert_disabled_extension( 'Phar' );
$this->assert_disabled_extension( 'readline' );
$this->assert_disabled_extension( 'shmop' );
$this->assert_disabled_extension( 'sysvmsg' );
$this->assert_disabled_extension( 'sysvsem' );
$this->assert_disabled_extension( 'sysvshm' );
$this->assert_disabled_extension( 'wddx' );
$this->assert_disabled_extension( 'xmlwriter' );
$this->assert_disabled_extension( 'xsl' );
// php7.0-sqlite3
// pdo_sqlite sqlite3
$this->assert_disabled_extension( 'pdo_sqlite' );
$this->assert_disabled_extension( 'sqlite3' );
// Сторонние расширения
// php7.0-redis
$this->assert_extension( 'igbinary' );
$this->assert_extension( 'redis' );
// Не для WordPress
// Сессии
$this->assert_directive( 'session.gc_maxlifetime', '1440' );
}
/**
* Простая проверка.
*
* @param $id string ID проверки
* @param $expected string Ожидаемое значение
* @param $result string Текущее значение
*/
private function assert( $id, $expected, $result ) {
if ( $expected !== $result ) {
$this->errors[ $id ] = $result;
}
}
/**
* Проверка наличия расширения PHP.
*
* @param $extension_name string Имя расширения
* @param $id string Опциональный ID проверки
*/
private function assert_extension( $extension_name, $id = '' ) {
// Автоматический ID
if ( '' === $id ) {
$id = 'ext.' . $extension_name;
}
$this->assert( $id, true, extension_loaded( $extension_name ) );
}
/**
* Проверка отсутствия расширения PHP.
*
* @param $extension_name string Имя расширения
* @param $id string Опциональный ID проверки
*/
private function assert_disabled_extension( $extension_name, $id = '' ) {
// Автоматический ID
if ( '' === $id ) {
$id = '!ext.' . $extension_name;
}
$this->assert( $id, false, extension_loaded( $extension_name ) );
}
/**
* Проверка значения директивы PHP.
*
* @param $directive_name string Имя директивы
* @param $expected string Ожидаемое значение
* @param $id string Опциональный ID проверки
*/
private function assert_directive( $directive_name, $expected, $id = '' ) {
// Автоматический ID
if ( '' === $id ) {
$id = $directive_name;
}
$this->assert( $id, $expected, ini_get( $directive_name ) );
}
}
На основе работы @rarst

Справочник WordPress теперь включает список рекомендуемых модулей PHP:
Ядро WordPress использует расширения PHP. Если предпочтительное расширение отсутствует, WordPress либо будет выполнять больше работы для выполнения задачи, которую упрощает модуль, либо, в худшем случае, отключит определённые функции. Поэтому следующие расширения PHP рекомендуются к установке.
- curl – Выполняет удалённые HTTP-запросы.
- exif – Работает с метаданными, хранящимися в изображениях.
- filter – Используется для безопасной фильтрации пользовательского ввода.
- fileinfo – Определяет MIME-тип загружаемых файлов.
- mod_xml – Используется для генерации XML, например, для карты сайта в формате XML. Обратите внимание, что mod_xml — это модуль Apache, а не расширение PHP, но он указан для осведомлённости.
- mysqli – Обеспечивает подключение к MySQL для работы с базой данных.
- libsodium – Генерирует случайные байты.
- openssl – Позволяет устанавливать SSL-соединения с другими хостами.
- pcre – Повышает производительность при сопоставлении шаблонов в поиске по коду.
- imagick – Обеспечивает лучшее качество изображений при загрузке медиафайлов. Подробности см. в статье WP_Image_Editor is incoming! Более интеллектуальное изменение размера (для уменьшения изображений) и поддержка миниатюр PDF, если также установлен Ghost Script.
- xml – Используется для парсинга XML, например, с сторонних сайтов.
Также указаны следующие необязательные расширения PHP:
- gd – Если Imagick не установлен, библиотека GD Graphics Library используется как функционально ограниченная альтернатива для обработки изображений.
- mcrypt – Генерирует случайные байты, если libsodium недоступен.
- xmlreader – Используется для парсинга XML.
- zlib – Сжатие и распаковка в формате Gzip.

Хм, интересно, какое отношение имеет mod_xml
, если ядро не реализует XML-карты сайта и не привязано к работе на определенном веб-сервере.

Примечание: bcmath
был удален из этого списка на странице после данного ответа.

Если вы используете Debian 7 (Debian Wheezy), вам необходимо установить сам PHP и небольшое количество расширений. Большая часть того, что упомянул @Rarst, уже включена в одну из самых базовых установок PHP в Debian.
PHP
В Debian Wheezy у вас есть четыре варианта: libapache2-mod-php5, libapache2-mod-php5filter, php5-cgi или php5-fpm. Я выбираю php5-fpm, но все зависит от того, как вы хотите, чтобы ваш веб-сервер и PHP взаимодействовали.
MySQL
Также вам понадобится PHP для работы с MySQL. Варианты: php5-mysql и php5-mysqlnd. php5-mysqlnd — это нативный драйвер, который обычно работает быстрее. Некоторые могут выбрать альтернативу, такую как MariaDB.
Графическая библиотека Опционально
Если вам нужно изменять размер изображений, вы можете установить либо php5-gd, либо php5-imagick. php5-imagick обеспечивает лучшее качество, и WordPress будет использовать его, если он доступен. Если установлены оба, будет использоваться php5-imagick. Если ни один не установлен, изображения не будут изменяться (и WordPress не будет жаловаться).
HTTP Опционально
Если установить php5-curl, он будет использоваться, но не является обязательным, за исключением, возможно, лучшей производительности.
Для WordPress больше ничего не требуется, и большинство расширений тоже, хотя некоторые расширения могут иметь другие требования.
Вот полная команда для базовой установки, которая даст WordPress все необходимое для оптимальной производительности и ничего лишнего:
apt-get install php5-fpm php5-mysqlnd php5-imagick php5-curl

Небольшая "шпаргалка" по установке PHP для Wordpress на Debian:
0. Добавляем репозиторий dotdeb
Добавьте эти две строки в файл /etc/apt/sources.list
:
deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all
Добавляем GPG-ключ:
wget https://www.dotdeb.org/dotdeb.gpg
sudo apt-key add dotdeb.gpg
Обновляем список пакетов:
sudo apt-get update
1. Устанавливаем PHP 7:
apt-get install php7.0-common libapache2-mod-php7.0 php7.0-cli
Источник: http://php.net/manual/en/install.unix.debian.php
2. Список модулей, входящих в пакет "php7.0-common":
/usr/lib/php/20151012/calendar.so
/usr/lib/php/20151012/ctype.so
/usr/lib/php/20151012/exif.so
/usr/lib/php/20151012/fileinfo.so
/usr/lib/php/20151012/ftp.so
/usr/lib/php/20151012/gettext.so
/usr/lib/php/20151012/iconv.so
/usr/lib/php/20151012/pdo.so
/usr/lib/php/20151012/phar.so
/usr/lib/php/20151012/posix.so
/usr/lib/php/20151012/shmop.so
/usr/lib/php/20151012/sockets.so
/usr/lib/php/20151012/sysvmsg.so
/usr/lib/php/20151012/sysvsem.so
/usr/lib/php/20151012/sysvshm.so
/usr/lib/php/20151012/tokenizer.so
Источник: https://packages.debian.org/sid/amd64/php7.0-common/filelist
3. Установка дополнительных модулей, рекомендуемых/необходимых для WordPress:
apt-get install php7.0-curl php7.0-gd php7.0-mbstring php7.0-mcrypt php7.0-pspell php7.0-zip
Источник: https://wordpress.stackexchange.com/a/42141/107878
4. Не удалось найти следующие пакеты в Debian:
Openssl
Path Info Check
Zlib
5. Результат команды "apt-cache search php7":
php7.0 - серверный, HTML-встраиваемый язык сценариев (метапакет)
php7.0-apcu - APC User Cache для PHP
php7.0-apcu-bc - Модуль обратной совместимости APCu
php7.0-bcmath - Модуль Bcmath для PHP
php7.0-bz2 - Модуль bzip2 для PHP
php7.0-cgi - серверный, HTML-встраиваемый язык сценариев (CGI-бинарник)
php7.0-cli - интерпретатор командной строки для языка PHP
php7.0-common - документация, примеры и общий модуль для PHP
php7.0-curl - Модуль CURL для PHP
php7.0-dba - Модуль DBA для PHP
php7.0-dbg - Отладочные символы для PHP7.0
php7.0-dev - Файлы для разработки модулей PHP7.0
php7.0-enchant - Модуль Enchant для PHP
php7.0-fpm - серверный, HTML-встраиваемый язык сценариев (FPM-CGI бинарник)
php7.0-gd - Модуль GD для PHP
php7.0-geoip - Модуль GeoIP для PHP
php7.0-gmp - Модуль GMP для PHP
php7.0-igbinary - Сериализатор igbinary для PHP
php7.0-imagick - Обертка для библиотеки ImageMagick
php7.0-imap - Модуль IMAP для PHP
php7.0-interbase - Модуль Interbase для PHP
php7.0-intl - Модуль интернационализации для PHP
php7.0-json - Модуль JSON для PHP
php7.0-ldap - Модуль LDAP для PHP
php7.0-mbstring - Модуль MBSTRING для PHP
php7.0-mcrypt - Модуль libmcrypt для PHP
php7.0-memcached - Модуль memcached для PHP, использует libmemcached
php7.0-mongodb - Драйвер MongoDB для PHP
php7.0-msgpack - Сериализатор MessagePack для PHP
php7.0-mysql - Модуль MySQL для PHP
php7.0-odbc - Модуль ODBC для PHP
php7.0-opcache - Модуль Zend OpCache для PHP
php7.0-pgsql - Модуль PostgreSQL для PHP
php7.0-phpdbg - серверный, HTML-встраиваемый язык сценариев (PHPDBG бинарник)
php7.0-pspell - Модуль pspell для PHP
php7.0-readline - Модуль readline для PHP
php7.0-recode - Модуль recode для PHP
php7.0-redis - Расширение PHP для работы с Redis
php7.0-snmp - Модуль SNMP для PHP
php7.0-soap - Модуль SOAP для PHP
php7.0-sqlite3 - Модуль SQLite3 для PHP
php7.0-ssh2 - Привязки для библиотеки libssh2
php7.0-sybase - Модуль Sybase для PHP
php7.0-tidy - Модуль tidy для PHP
php7.0-xdebug - Модуль Xdebug для PHP
php7.0-xml - Модули DOM, SimpleXML, WDDX, XML и XSL для PHP
php7.0-xmlrpc - Модуль XMLRPC-EPI для PHP
php7.0-xsl - Модуль XSL для PHP (заглушка)
php7.0-zip - Модуль Zip для PHP

Официально, WordPress.org заявляет, что только следующие PHP-расширения требуются для WordPress Core 5.3+ при использовании рекомендуемой версии PHP, которая в настоящее время PHP 7.2:
curl -- Выполняет удаленные запросы.
dom -- Используется для проверки содержимого текстовых виджетов и автоматической настройки IIS7+.
exif -- Работает с метаданными, хранящимися в изображениях.
fileinfo -- Используется для определения MIME-типа загружаемых файлов.
hash -- Используется для хеширования, включая пароли и пакеты обновлений.
json -- Используется для обмена данными с другими серверами.
mbstring -- Обеспечивает корректную обработку текста в кодировке UTF8.
mysqli -- Обеспечивает подключение к MySQL для взаимодействия с базой данных.
libsodium -- Проверяет подписи и предоставляет криптографически безопасные случайные байты.
openssl -- Позволяет устанавливать SSL-соединения с другими хостами.
pcre -- Увеличивает производительность при поиске совпадений шаблонов в коде.
imagick -- Обеспечивает лучшее качество изображений при загрузке медиафайлов. См. WP_Image_Editor is incoming! для подробностей. Умное изменение размера изображений (для уменьшения их размера) и поддержка миниатюр PDF, если также установлен Ghost Script.
xml -- Используется для разбора XML, например, с сторонних сайтов.
zip -- Используется для распаковки плагинов, тем и пакетов обновления WordPress.
...но также рекомендуются следующие опциональные расширения:
filter -- Используется для безопасной фильтрации пользовательского ввода.
gd -- Если Imagick не установлен, используется GD Graphics Library как функционально ограниченная альтернатива для манипуляции изображениями.
iconv -- Используется для конвертации между кодировками символов.
mcrypt -- Генерирует случайные байты, если libsodium и /dev/urandom недоступны.
simplexml -- Используется для разбора XML.
xmlreader -- Используется для разбора XML.
zlib -- Сжатие и распаковка в формате Gzip.
Однако имейте в виду, что некоторые из этих обязательных (или опциональных) расширений уже включены в другие пакеты PHP. Например, dom
часто входит в состав расширения xml
. А другие, такие как fileinfo
, вероятно, уже установлены как часть так называемого пакета php-common
, если вы используете Ubuntu и т.п.
Кроме того, существуют и другие расширения, такие как bcmath
, которые официально не требуются и не рекомендуются WordPress, но используются многими популярными плагинами, например, Yoast SEO.
Вы можете ознакомиться с нашим списком PHP-расширений для WordPress на LittleBizzy, если вам интересно.

вам понадобятся расширения mysqli, pdo и gd. а иногда и xml-rpc.
Я уже некоторое время запускаю WP с нативным расширением mysqlnd, и это довольно удобно. Оно имеет встроенные функции рефлексии, так что если вам нужно посмотреть, что происходит с базой данных в конкретном запросе, вы можете это сделать.
расширение zip не требуется, большинство программ вызывают системный исполняемый файл zip.
