Що таке розширення та бібліотеки PHP, необхідні та / або використовуються WP?


79

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

Що таке розширення / бібліотеки, які:

  1. потрібні, щоб WP взагалі працювала? MySQL ...
  2. потрібні для конкретних функцій? GD? ...
  3. є кращими для найкращого функціонування конкретних функцій? CURL ...
  4. зазвичай використовуються плагіни? Zip ...

Чи знаєте ви, що на вашому сайті є помилка SSL ( queryposts.com )?
Я найдуріша людина

@IamtheMostStupidPerson, дякую, автоматичне оновлення сертифікатів не вдалося з якихось причин, це слід виправити зараз.
Рарст

Не хвилюйтесь, це давайте шифруємо. чи не так? Я думав, що це автоматично поновиться ... Якщо ми не можемо відновити його як ваш випадок, що ми можемо зробити?
Я найдурніша людина

@IamtheMostStupidPerson хостингова підтримка відновила його (вона була створена завдяки їх інтеграції), вона для мене зазвичай автоматично поновлюється.
Рарст

Надзвичайно важко знайти, але є офіційна рекомендація: 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
  • ГД - 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-weeeeird. Що викликало у мене це запитання, це те, що 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.

  • GD - Не потрібно вводити, правда ?.

  • 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-cli
  • php5-dev
  • php5-fpm
  • php5-cgi
  • php5-mysql
  • php5-xmlrpc
  • php5-завиток
  • php5-gd
  • php-apc (не потрібно, але рекомендується)
  • php-груша
  • php5-образ
  • 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, вже включено до однієї з найпростіших установок 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

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-кеш пошуку 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 core використовує розширення PHP. Якщо відсутнє бажане розширення, WordPress або повинен буде зробити більше роботи, щоб виконати завдання, з яким допомагає модуль, або, в гіршому випадку, видалить функціонал. Тому рекомендуються розширення PHP, перелічені нижче.

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

Він також перераховує такі розширення PHP як необов'язкові:

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

Так, мені цікаво, що стосується mod_xmlбудь-чого, оскільки ядро ​​не реалізує карти XML та не прив'язане до роботи на певному веб-сервері.
Рарст

0

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

Я працюю WP з рідним розширенням mysqlnd вже деякий час, це досить акуратно. Вбудований матеріал для роздумів, тому, якщо ви хочете побачити, що відбувається з db в цьому конкретному запиті, ви можете це зробити.

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


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