Какие расширения и библиотеки PHP необходимы и/или используются в WordPress?

12 февр. 2012 г., 23:42:28
Просмотры: 124K
Голосов: 94

В Codex кратко упоминается только версия PHP в системных требованиях, однако PHP можно настроить с широким диапазоном включения/исключения различных компонентов.

Какие расширения/библиотеки:

  1. необходимы для работы WordPress в принципе? MySQL...
  2. требуются для определенных функций? GD ?...
  3. предпочтительны для оптимальной работы определенных функций? cURL...
  4. обычно используются плагинами? Zip...
5
Комментарии

Вы в курсе, что на вашем сайте (https://queryposts.com/) есть ошибка SSL?

I am the Most Stupid Person I am the Most Stupid Person
19 июл. 2018 г. 12:31:11

@IamtheMostStupidPerson спасибо, автоматическое обновление сертификата по какой-то причине не сработало, сейчас должно быть исправлено.

Rarst Rarst
19 июл. 2018 г. 14:37:46

Без проблем, это же Let's Encrypt, верно? Я думал, он обновляется автоматически... Если, как в вашем случае, автоматическое обновление не срабатывает, что можно сделать?

I am the Most Stupid Person I am the Most Stupid Person
19 июл. 2018 г. 16:06:52

@IamtheMostStupidPerson служба поддержки хостинга сбросила настройки (это было настроено через их интеграцию), обычно для меня оно продлевается автоматически.

Rarst Rarst
19 июл. 2018 г. 16:25:12

Очень сложно найти, но есть официальная рекомендация: https://make.wordpress.org/hosting/handbook/handbook/server-environment/#php-extensions

Aidan Aidan
6 нояб. 2018 г. 09:04:30
Все ответы на вопрос 11
9
99

Я подумал об этом ещё раз и, учитывая размер кодовой базы 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, не используется?)
  • 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 использований

13 февр. 2012 г. 21:55:40
Комментарии

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

Chris_O Chris_O
18 февр. 2012 г. 07:21:15

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

Rarst Rarst
18 февр. 2012 г. 18:14:10

Какая библиотека используется для распаковки тем и плагинов?

jgraup jgraup
24 нояб. 2016 г. 23:23:37

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

Rarst Rarst
24 нояб. 2016 г. 23:46:10

Ты никогда не перестаешь удивлять меня, @Rarst ;-)

jgraup jgraup
25 нояб. 2016 г. 00:04:37

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

j08691 j08691
3 мар. 2017 г. 20:17:20

Отсутствует расширение ORACLE и другие базы данных...

NaN NaN
24 мар. 2017 г. 16:46:51

@EASI Хм? WordPress изначально поддерживает только MySQL.

Rarst Rarst
24 мар. 2017 г. 16:49:30

Стоит упомянуть, что эти библиотеки могут использоваться ядром, но это зависит от конкретных конфигураций и путей выполнения. Например, FTP вряд ли будет использоваться, если вы применяете wp-cli для обновлений ядра и плагинов.

Mark Kaplun Mark Kaplun
7 дек. 2017 г. 08:50:20
Показать остальные 4 комментариев
1
27

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

13 февр. 2012 г. 11:27:19
Комментарии

Почему этого нигде нет на сайте WordPress?

ttt ttt
20 мар. 2017 г. 11:27:18
2
14

(Это не является ответом. Просто полезная информация. Если вы считаете, что эта информация бесполезна, дайте мне знать, я просто удалю её.)

Я думаю, что для новичков будет проще говорить в терминах пакетов, но поскольку пакеты различаются в зависимости от системы, сложно охватить их все.

Поскольку у меня есть опыт работы с 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-модули включают (вам, вероятно, понадобятся большинство, но не все):

PHP модули, предустановленные Hostgator

Media Temple предоставляет файл phpinfo(); для проверки их конфигурации. Это также полезно для сравнения.

10 февр. 2013 г. 05:17:51
Комментарии

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

User User
10 июл. 2014 г. 03:50:50

Помимо версии (php5), это на самом деле лучший ответ здесь... Вопрос звучит не "для чего", а просто "какие" модули. Голосую за!

GerardJP GerardJP
19 дек. 2018 г. 16:00:16
0
12

Если вам нужен простой способ проверить, соответствует ли ваш сервер этим требованиям, теперь есть удобная команда 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: Все необходимые расширения установлены
18 янв. 2018 г. 18:12:59
0

Я разработал свой проверщик окружения 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

24 нояб. 2016 г. 21:14:41
2

Справочник 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.
1 июн. 2019 г. 07:09:07
Комментарии

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

Rarst Rarst
2 июн. 2019 г. 11:21:26

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

Robert Dundon Robert Dundon
20 окт. 2020 г. 06:08:28
0

Если вы используете 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
11 июл. 2014 г. 01:31:49
0

Стоит отметить, что начиная с WordPress 5.2, встроена функция, которая сообщает об отсутствующих модулях. Её можно найти в разделе Инструменты > Здоровье сайта.

29 июл. 2019 г. 07:13:16
0

Небольшая "шпаргалка" по установке 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

Ссылка: https://packages.debian.org/source/sid/php7.0

20 мар. 2017 г. 11:57:10
0

Официально, 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, если вам интересно.

6 февр. 2020 г. 14:40:48
1

вам понадобятся расширения mysqli, pdo и gd. а иногда и xml-rpc.

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

расширение zip не требуется, большинство программ вызывают системный исполняемый файл zip.

13 февр. 2012 г. 17:10:18
Комментарии

WordPress не использует слой PDO. Возможно, существуют плагины, которые позволяют это сделать, но API базы данных WP всё ещё относится к древним временам PHP...

onetrickpony onetrickpony
13 февр. 2012 г. 20:36:58