Какие расширения и библиотеки PHP нужны и / или используются WP?


79

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

Что такое расширения / библиотеки, которые:

  1. нужны для WP вообще работать? MySQL ...
  2. необходимы для определенных функций? БЖ? ...
  3. предпочтительнее для лучшей работы конкретных функций? Curl ...
  4. обычно используются плагины? Zip ...

Знаете ли вы, что на вашем сайте есть ошибка SSL ( queryposts.com )?
Я самый глупый человек

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

Не беспокойтесь, это давайте зашифруем. нет? Я думал, что это автоматически обновляется ... Если мы не будем автоматически продлевать, как в вашем случае, что мы можем сделать?
Я самый глупый человек

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

Очень трудно найти, но есть официальная рекомендация: make.wordpress.org/hosting/handbook/handbook/server-environment/…
aidanh010

Ответы:


90

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

Я посмотрел соответствующий инструмент для статического анализа кода - PHP_CompatInfo и после некоторой работы сгенерировал следующий отчет о расширениях, используемых ядром (отсканированная версия 3.3.1):

  • cURL - 127 использует (требует libcurl )

    • HTTP API (класс WP_Http_curl)
    • url_is_accessable_via_ssl()
    • SimplePie (переопределяется с классом WP_SimplePie_File)
    • GoogleSpell (из пакета TinyMCE, не используется?)
  • Дата / Время - 367 использований

  • DOM - 6 использует (требуется libxml )

    • iis7_rewrite_rule_exists()
    • iis7_delete_rewrite_rule()
    • iis7_add_rewrite_rule()
    • saveDomDocument()
  • POSIX Regex - 23 использует

  • Фильтр - 2 использования

    • класс PHPMailer->ValidateAddress()(необязательно)
  • FTP - 72 использует

    • класс ftp_base
    • класс ftp( чистая версия и версия с сокетами )
    • класс WP_Filesystem_FTPext
    • класс WP_Filesystem_ftpsockets
  • GD - 56 использует

    • wp-admin\includes\image-edit.php
    • wp-admin\includes\image.php
    • wp-includes\media.php
  • Хэш - 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
  • Многобайтовая строка - 29 использований

    • некоторое отступление в wp-includes/compat.php
  • MySQL - 60 использует

    • класс wpdb
    • классSimplePie_Cache (переопределяется с классом WP_Feed_Cache)
  • OpenSSL - 4 использует

    • класс PHPMailer
  • PCRE - 743 использует

  • SimpleXML - 1 использует

    • класс WP_oEmbed(кажется необязательным)
  • Розетки - 64 использования

    • класс ftp( socketsреализация)
  • SPL - 3 использует

  • Токенизатор - 3 использования

    • wp_doc_link_parse() (по желанию)
  • XML Parser - 89 использует

  • XMLReader - 1 использует

    • SimplePie (кажется необязательным)
  • Zlib - 30 использует


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

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

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

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

1
С версией v4.7 и новыми встроенными миниатюрами / превью в формате PDF вашему серверу требуется поддержка Imagick, ImageMagick и Ghostscript.
j08691

26

Ответ на этот вопрос может быть сложным и очень длинным, насколько я знаю, также будут некоторые различия между серверами и ОС (IIS, Apache). Я не могу сказать, что следующий список является полным списком, но он включает в себя некоторые из тех, кого я знаю, требуются:

  • Curl и CurlSSL - Не уверен, что это ТРЕБУЕТСЯ, но большая часть кода WordPress будет использовать его, если он доступен. Однако многие плагины требуют этого и / или будут иметь ограниченные функции без него.

  • Exif - позволяет обработчику мультимедиа WordPress извлекать данные Exif из изображений.

  • Gettext - .po .mo обрабатывает интернационализацию перевода.

  • FTP - используется для обновления плагинов и WordPress через FTP.

  • Г.Д. - Не нужно знакомство, верно?

  • Iconv - преобразование набора символов для всего, от почты до парсинга RSS.

  • Mbregex и Mbstring - название довольно наглядное - предоставляют функции, используемые повсеместно :-)

  • Mcrypt - не нужен для WordPress, но многим плагинам это нужно.

  • Mime Magic - устарел сейчас в WordPress - но все же хорошо иметь совместимость со спиной.

  • * Mysql и Mysql системы * - мы все знаем, что это такое и зачем это нужно, нет?

  • Openssl - эта библиотека используется для обработки соединений, зашифрованных с помощью SSL-сертификатов, для WordPress возможно подключение к любому зашифрованному местоположению SSL (https).

  • POSIX - используется для того, чтобы WordPress правильно поддерживал права доступа к файлам и права собственности.

  • Проверка информации о пути - некоторые постоянные настройки.

  • Pspell - возможности проверки орфографии в TinyMCE.

  • Сокеты - управление FTP-соединениями и обработка почты AKA SMTP и POP в WordPress.

  • Zip - Не уверен, если ТРЕБУЕТСЯ - но этот кросс-платформенный класс создания и извлечения zip-файлов будет использоваться WordPress, если он доступен.

  • Zlib - используется во многих случаях. пример - сжатие файлов js и css. опять же, не уверен, если ТРЕБУЕТСЯ, но необходимо.

Как указано выше - это ни в коем случае не полный список - он был составлен около года назад - и, возможно, потребуется какое-то обновление. Многие из этих функций НЕ ТРЕБУЮТСЯ, но СОВЕТУЮТСЯ . Во многих случаях WordPress будет использовать функцию, если она доступна, и если нет, будет игнорировать задачу. Хорошим примером является отсутствие библиотеки GD, она не помешает работе WordPress, но она не будет обрезать, изменять размер или изменять загруженные изображения - таким образом, оставляя оригинал (и серым параметр «размер» в «вставить» изображение для публикации "функция) ..

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


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

13

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

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

Поскольку у меня есть опыт работы с Debian (и дистрибутивами на основе Debian), я хотел бы поделиться этой конкретной информацией:

  • php5-кли
  • php5-DEV
  • php5-FPM
  • php5-CGI
  • php5-MySQL
  • php5-XMLRPC
  • php5-ротор
  • php5-Г.Д.
  • php-apc (не обязательно, но рекомендуется)
  • PHP-груша
  • php5-IMAP
  • php5-Mcrypt
  • php5-pspell

Вышеупомянутые пакеты устанавливают все расширения / библиотеки / модули, упомянутые в других ответах; все, кроме Mime Magic, которое больше не требуется WordPress .

Еще один хороший способ убедиться, что ваш сервер на 100% совместим с WordPress, - это проверить, с какими пакетами предварительно установлены хостинговые компании . Поскольку они имеют многолетний опыт работы с жалобами клиентов на несовместимость, они будут знать лучше.

В случае Hostgator предустановленные модули PHP включают в себя (вероятно, вам понадобится только большинство, но не все):

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

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


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

Помимо версии (php5), это на самом деле лучший ответ здесь ... вопрос не гласит «зачем», просто «какие» модули. Проголосовал!
GerardJP

8

Если вам нужен простой способ проверить, соответствует ли ваш сервер этим требованиям, теперь для этого есть удобная команда 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: All required extensions are installed

7

Я разработал мою проверку среды WordPress. Это простой класс, работает в веб-SAPI или CLI. Это поддерживаемая версия https://github.com/szepeviktor/debian-server-tools/blob/master/webserver/php-env-check.php

<?php
/**
 * Check PHP environment.
 *
 * Usage through a webserver
 *     wget -q -O - "https://example.com/php-env-check.php"; echo
 * Usage on 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;

// Local access only
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;
}

// Remove cached version of this file
if ( function_exists( 'opcache_invalidate' ) ) {
    opcache_invalidate( __FILE__ );
}

// Check environment
$check = new Check_Env();
$status = empty( $check->errors );

// Display report and exit
print json_encode( $check->errors );
exit( $status ? 0 : 1 );

/**
 * Check PHP configuration.
 */
final class Check_Env {

    /**
     * List of errors.
     */
    public $errors = array();

    /**
     * Run the checks.
     *
     * @param void
     */
    public function __construct() {

        // Extensions for WordPress on PHP 7.0
        // http://wordpress.stackexchange.com/a/42212

        // Engine version
        $this->assert( 'php', 70013, PHP_VERSION_ID );

        // Core directives
        $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' );

        // Compiled in Extensions
        // 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' );

        // Common Extensions
        // 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 will use mysqli through mysqlnd (no 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' );

        // Deprecated Extensions
        $this->assert_disabled_extension( 'mcrypt' );
        $this->assert_disabled_extension( 'mysql' );

        // Disabled Extensions
        // 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' );

        // 3rd-party Extensions

        // php7.0-redis
        $this->assert_extension( 'igbinary' );
        $this->assert_extension( 'redis' );

        // Not for WordPress

        // Session
        $this->assert_directive( 'session.gc_maxlifetime', '1440' );
    }

    /**
     * Simple assert.
     *
     * @param $id string       Assert ID
     * @param $expected string Expected value
     * @param $result string   Current value
     */
    private function assert( $id, $expected, $result ) {

        if ( $expected !== $result ) {
            $this->errors[ $id ] = $result;
        }
    }

    /**
     * Assert for a PHP extension.
     *
     * @param $extension_name string Extension name
     * @param $id string             Optional assert ID
     */
    private function assert_extension( $extension_name, $id = '' ) {

        // Automatic ID
        if ( '' === $id ) {
            $id = 'ext.' . $extension_name;
        }
        $this->assert( $id, true, extension_loaded( $extension_name ) );
    }

    /**
     * Negative assert for a PHP extension.
     *
     * @param $extension_name string Extension name
     * @param $id string             Optional assert ID
     */
    private function assert_disabled_extension( $extension_name, $id = '' ) {

        // Automatic ID
        if ( '' === $id ) {
            $id = '!ext.' . $extension_name;
        }
        $this->assert( $id, false, extension_loaded( $extension_name ) );
    }

    /**
     * Assert for a PHP directive.
     *
     * @param $directive_name string Directive name
     * @param $expected string       Expected value
     * @param $id string             Optional assert ID
     */
    private function assert_directive( $directive_name, $expected, $id = '' ) {

        // Automatic ID
        if ( '' === $id ) {
            $id = $directive_name;
        }
        $this->assert( $id, $expected, ini_get( $directive_name ) );
    }
}

Основано на работе @rarst


3

Если вы используете Debian 7 (Debian Wheezy), вам нужно установить сам PHP и небольшое количество расширений. Большая часть того, что было упомянуто @Rarst, уже включена в одну из самых основных установок Debian для PHP.

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

2

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


1

Небольшая «шпаргалка» при установке 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 - server-side, HTML-embedded scripting language (metapackage)
php7.0-apcu - APC User Cache for PHP
php7.0-apcu-bc - APCu Backwards Compatibility Module
php7.0-bcmath - Bcmath module for PHP
php7.0-bz2 - bzip2 module for PHP
php7.0-cgi - server-side, HTML-embedded scripting language (CGI binary)
php7.0-cli - command-line interpreter for the PHP scripting language
php7.0-common - documentation, examples and common module for PHP
php7.0-curl - CURL module for PHP
php7.0-dba - DBA module for PHP
php7.0-dbg - Debug symbols for PHP7.0
php7.0-dev - Files for PHP7.0 module development
php7.0-enchant - Enchant module for PHP
php7.0-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)
php7.0-gd - GD module for PHP
php7.0-geoip - GeoIP module for PHP
php7.0-gmp - GMP module for PHP
php7.0-igbinary - igbinary serializer for PHP
php7.0-imagick - Provides a wrapper to the ImageMagick library
php7.0-imap - IMAP module for PHP
php7.0-interbase - Interbase module for PHP
php7.0-intl - Internationalisation module for PHP
php7.0-json - JSON module for PHP
php7.0-ldap - LDAP module for PHP
php7.0-mbstring - MBSTRING module for PHP
php7.0-mcrypt - libmcrypt module for PHP
php7.0-memcached - memcached extension module for PHP, uses libmemcached
php7.0-mongodb - MongoDB driver for PHP
php7.0-msgpack - MessagePack serializer for PHP
php7.0-mysql - MySQL module for PHP
php7.0-odbc - ODBC module for PHP
php7.0-opcache - Zend OpCache module for PHP
php7.0-pgsql - PostgreSQL module for PHP
php7.0-phpdbg - server-side, HTML-embedded scripting language (PHPDBG binary)
php7.0-pspell - pspell module for PHP
php7.0-readline - readline module for PHP
php7.0-recode - recode module for PHP
php7.0-redis - PHP extension for interfacing with Redis
php7.0-snmp - SNMP module for PHP
php7.0-soap - SOAP module for PHP
php7.0-sqlite3 - SQLite3 module for PHP
php7.0-ssh2 - Bindings for the libssh2 library
php7.0-sybase - Sybase module for PHP
php7.0-tidy - tidy module for PHP
php7.0-xdebug - Xdebug Module for PHP
php7.0-xml - DOM, SimpleXML, WDDX, XML, and XSL module for PHP
php7.0-xmlrpc - XMLRPC-EPI module for PHP
php7.0-xsl - XSL module for PHP (dummy)
php7.0-zip - Zip module for PHP

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


1

В справочнике WordPress теперь перечислены рекомендуемые модули PHP:

Ядро WordPress использует расширения PHP. Если предпочтительное расширение отсутствует, WordPress либо придется выполнить больше работы, чтобы выполнить задачу, с которой помогает модуль, либо, в худшем случае, удалить функциональность. Поэтому рекомендуется использовать перечисленные ниже расширения PHP.

  • bcmath - используется для повышения производительности математических вычислений.
  • curl - выполняет операции удаленного запроса.
  • exif - Работает с метаданными, хранящимися в изображениях.
  • фильтр - используется для безопасной фильтрации ввода пользователя.
  • fileinfo - Используется для обнаружения MIME-типа загрузки файлов
  • mod_xml - используется для генерации XML, например, для карты сайта XML. Обратите внимание, что mod_xml является модулем Apache, а не расширением PHP, но приведен для ознакомления.
  • mysqli - соединяется с MySQL для взаимодействия с базой данных.
  • libsodium - генерирует случайные байты.
  • openssl - разрешает SSL-соединения с другими хостами.
  • pcre - увеличивает производительность сопоставления с образцом при поиске кода.
  • imagick - обеспечивает лучшее качество изображения для загрузки мультимедиа. Смотрите WP_Image_Editor является входящим! для деталей. Разумное изменение размера изображения (для небольших изображений) и поддержка миниатюр PDF, когда Ghost Script также доступен.
  • xml - используется для анализа XML, например, со стороннего сайта.

В нем также перечислены следующие расширения PHP как необязательные:

  • gd - если Imagick не установлен, графическая библиотека GD используется как функционально ограниченный запасной вариант для манипулирования изображениями.
  • mcrypt - генерирует случайные байты, когда libsodium недоступен.
  • xmlreader - используется для разбора XML.
  • zlib - сжатие и распаковка Gzip.

Да, мне интересно, какое отношение это mod_xmlимеет к чему-либо, поскольку ядро ​​не реализует карты сайта XML и не привязано к работе на определенном веб-сервере.
Первый

0

вам нужны расширения mysqli, pdo и gd. а иногда и xml-rpc.

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

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


2
WP не использует слой PDO. Возможно, есть плагины, которые позволяют вам сделать это, но API базы данных WP все еще из древних времен PHP ...
onetrickpony
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.