Quali sono le estensioni e le librerie PHP necessarie e / o utilizzate da WP?


79

Il codice menziona vagamente solo la versione di PHP nei requisiti del server , tuttavia PHP può essere configurato in una gamma piuttosto ampia di esclusione / inclusione di parti diverse.

Cosa sono le estensioni / librerie che:

  1. sono necessari per far funzionare WP? MySQL ...
  2. sono richiesti per funzioni specifiche? GD? ...
  3. sono preferiti per il miglior funzionamento di funzioni specifiche? arricciare...
  4. sono comunemente usati dai plugin? Cerniera lampo...

Sai che c'è un errore SSL sul tuo sito ( queryposts.com )?
Sono la persona più stupida,

@IamtheMostStupidPerson grazie, il rinnovo automatico del certificato non è riuscito lì per qualche motivo, dovrebbe essere risolto ora.
Rarst

Non preoccuparti, è Let's Encrypt. non lo è? Ho pensato che si rinnovasse automaticamente ... Nel caso in cui non si rinnova automaticamente come nel tuo caso, cosa possiamo fare?
Sono la persona più stupida,

Il supporto di hosting @IamtheMostStupidPerson lo aveva ripristinato (è stato impostato attraverso la loro integrazione), normalmente si rinnova automaticamente per me.
Rarst

Estremamente difficile da trovare, ma esiste una raccomandazione ufficiale: make.wordpress.org/hosting/handbook/handbook/server-environment/…
aidanh010

Risposte:


90

Ci ho pensato un po 'di più e dato le dimensioni della base di codice WP (comprese le librerie in bundle) non sembra molto realistico compilare tale elenco a mano (e ripeterlo per ogni nuova versione - meh).

Ho cercato lo strumento di analisi del codice statico appropriato - PHP_CompatInfo e dopo alcuni ritocchi generati dopo il rapporto delle estensioni utilizzate dal core (versione scansionata 3.3.1):

  • cURL - 127 usi (richiede libcurl )

    • API HTTP (classe WP_Http_curl)
    • url_is_accessable_via_ssl()
    • SimplePie (sovrascritto con la classe WP_SimplePie_File)
    • GoogleSpell (dal pacchetto TinyMCE, non viene utilizzato?)
  • Data / ora - 367 usi

  • DOM - 6 usi (richiede libxml )

    • iis7_rewrite_rule_exists()
    • iis7_delete_rewrite_rule()
    • iis7_add_rewrite_rule()
    • saveDomDocument()
  • POSIX Regex - 23 usi

  • Filtro - 2 usi

    • classe PHPMailer->ValidateAddress()(opzionale)
  • FTP - 72 usi

    • classe ftp_base
    • classe ftp( versioni pure e socket )
    • classe WP_Filesystem_FTPext
    • classe WP_Filesystem_ftpsockets
  • GD - 56 utilizza

    • wp-admin\includes\image-edit.php
    • wp-admin\includes\image.php
    • wp-includes\media.php
  • Hash - 6 usi

    • wp-includes\pluggable.phpusi multipli (opzionale - fallback in wp-includes\compat.php)
  • iconv - 5 usi

    • classe SimplePie(opzionale)
    • wp_check_invalid_utf8() (opzionale)
    • wp-mail.php (opzionale)
  • JSON - 20 usi

    • facoltativo, fallback in wp-includes/compat.php
  • libxml - 4 usi

    • classe WP_oEmbed->_parse_xml()(opzionale)
    • SimplePie
  • Stringa multibyte - 29 usi

    • alcuni fallback in wp-includes/compat.php
  • MySQL - 60 usi

    • classe wpdb
    • classSimplePie_Cache (sovrascritto con class WP_Feed_Cache)
  • OpenSSL - 4 usi

    • classe PHPMailer
  • PCRE - 743 utilizza

  • SimpleXML - 1 utilizza

    • classe WP_oEmbed(sembra facoltativo)
  • Socket - 64 usi

    • classe ftp( socketsimplementazione)
  • SPL - 3 usi

  • Tokenizer - 3 usi

    • wp_doc_link_parse() (opzionale)
  • XML Parser - 89 usi

  • XMLReader - 1 utilizza

    • SimplePie (sembra facoltativo)
  • Zlib - 30 usi


4
Grande risorsa. Fortunatamente la maggior parte delle estensioni e delle librerie sopra sono ora compilate per impostazione predefinita con PHP 5.2.4 e versioni successive.
Chris_O,

@Chris_O fintanto che seguirà il default ... Il core team ha detto più volte che ci sono alcune configurazioni PHP più interessanti in circolazione. Ciò che mi ha fatto questa domanda è che VPS è stato acquistato sul posto di lavoro da un nuovo provider di hosting e inaspettatamente aveva una configurazione minima con alcune estensioni tipiche mancanti. Sarebbe più conveniente fornire supporto con tale elenco di controllo di estensioni, quindi scoprire e chiedere loro di essere installati uno per uno.
Rarst

Quale lib viene utilizzata per decomprimere temi e plugin?
jgraup,

1
@jgraup ZipArchive o PclZip vedi le funzioni di decompressione correlate queryposts.com/?s=unzip_file
Rarst

1
Con v4.7 e la nuova anteprima / anteprima PDF nativa, il tuo server necessita del supporto di Imagick, ImageMagick e Ghostscript.
j08691

26

La risposta potrebbe essere complicata e molto lunga, per quanto ne so, ci saranno anche alcune differenze tra server e sistema operativo (IIS, Apache) .. Non posso dire che il seguente elenco sia un elenco COMPLETO, ma include alcuni di quelli che so che sono richiesti:

  • Curl e CurlSSL - Non sono sicuro che sia RICHIESTO, ma gran parte del codice WordPress lo utilizzerà se è disponibile. Molti plugin tuttavia lo richiedono e / o avranno funzioni limitate senza di esso.

  • Exif : consente al gestore multimediale di WordPress di estrarre i dati Exif dalle immagini.

  • Gettext - .po .mo gestione dell'internazionalizzazione della localizzazione delle traduzioni.

  • FTP : utilizzato per eseguire aggiornamenti di plug-in e WordPress tramite FTP.

  • GD - Non c'è bisogno di presentazioni, giusto?

  • Iconv - conversioni di set di caratteri per tutto, dalla posta all'analisi RSS.

  • Mbregex e Mbstring - il nome è piuttosto descrittivo - forniscono funzioni usate ovunque :-)

  • Mcrypt - Non necessario per wordpress, ma molti plugin ne hanno bisogno.

  • Mime Magic - Ora obsoleto in wordpress - ma comunque buono da avere per la retrocompatibilità.

  • * Mysql e Mysql del sistema * - sappiamo tutti di cosa si tratta e perché è necessario, no?

  • Openssl : questa libreria viene utilizzata per gestire le connessioni crittografate con i certificati SSL per WordPress per consentire la connessione a qualsiasi posizione crittografata SSL (https).

  • POSIX : utilizzato per garantire che WordPress mantenga correttamente le autorizzazioni e le proprietà dei file.

  • Verifica informazioni percorso - alcune configurazioni permalink.

  • Pspell - capacità di controllo ortografico di TinyMCE ,.

  • Socket : gestione delle connessioni FTP e gestione della posta AKA SMTP e POP in WordPress.

  • Zip - Non sono sicuro se RICHIESTO - ma questa classe di creazione ed estrazione di file zip compatibile multipiattaforma sarà utilizzata da wordpress se disponibile.

  • Zlib : utilizzato in molti casi. esempio: compressione dei file js e css. di nuovo, non sono sicuro se RICHIESTO ma necessario.

Come sopra indicato - questo non è affatto un elenco COMPLETO - È stato compilato circa un anno fa - e potrebbe essere necessario un aggiornamento. Molte di queste funzioni non sono esattamente RICHIESTE ma CONSIGLIATE . In molti casi wordpress utilizzerà una funzione SE è disponibile e, in caso contrario, ignorerà l'attività. Un buon esempio è la mancanza della libreria GD, non fermerà il funzionamento di wordpress, ma non ritaglierà, ridimensionerà o altererà le immagini caricate - lasciando così l'originale (e disattivando l'opzione "size" nell'inserto "insert" immagine da pubblicare "funzione) ..

Come nota a margine, direi anche che forse questa domanda avrà probabilmente risposte più corrette / aggiornate su serverfault.com rispetto a qui ...


Perché questo non è dove trovare sul sito Web Wordpress?
Tadej,

13

( Questa non vuole essere una risposta. Solo alcune informazioni utili. Se ritieni che queste informazioni non siano utili, fammi sapere, le cancellerò semplicemente.)

Penso che parlare in termini di pacchetti sarebbe più facile per i principianti, ma poiché i pacchetti variano da sistema a sistema, è difficile coprirli tutti.

Dato che ho esperienza con Debian (e distribuzioni basate su Debian), vorrei condividere queste informazioni specifiche:

  • php5-cli
  • php5-dev
  • php5-fpm
  • php5-cgi
  • php5-mysql
  • php5-XMLRPC
  • php5-curl
  • php5-gd
  • php-apc (non richiesto, ma consigliato)
  • php-pear
  • php5-imap
  • php5-mcrypt
  • php5-pspell

I pacchetti di cui sopra installano tutte le estensioni / librerie / moduli citati nelle altre risposte; tutto, tranne Mime Magic, che non è più richiesto da WordPress .

Un altro buon modo per assicurarsi che il tuo server sia compatibile al 100% con WordPress è verificare quali pacchetti vengono preinstallati dalle società di hosting gestite . Avendo anni di esperienza con i reclami dei clienti in merito a incompatibilità, lo sapranno meglio.

Nel caso di Hostgator , i moduli PHP preinstallati includono (probabilmente avrai bisogno solo della maggior parte ma non di tutti):

Moduli PHP preinstallati da Hostgator

Media Temple fornisce un phpinfo();file per verificare la loro configurazione. È utile anche a scopo di confronto.


A cosa serve WP php5-cli, php5-dev, (php5-fpm && php5-cgi), php5-pear, php5-imap e php5-pspell? Il tuo approccio sembra essere quello di installare tutto ed è scadente. Come è l'idea che dovresti imitare gli ambienti di hosting condiviso se hai il controllo sulla tua installazione. Inoltre, dovresti scegliere un modo per eseguire PHP (FastCGI o CGI) ma non entrambi.

Oltre alla versione (php5), questa è in realtà la migliore risposta qui .. la domanda non indica "cosa per", solo "quali" moduli. Votato!
GerardJP

8

Se vuoi un modo semplice per verificare se il tuo server soddisfa questi requisiti, ora c'è un comodo comando ext WP-CLI per farlo.

wp ext requiredmostra tutte le estensioni PHP necessarie per eseguire WordPress, mentre wp ext recommendedmostra quelle opzionali . wp ext checkè una combinazione di entrambi i comandi.

Questi sono utili quando è necessario un modo rapido per verificare i requisiti di sistema su un nuovo server e / o se si desidera elaborare ulteriormente questo elenco a livello di codice.

Ecco come wp ext requiredfunziona:

$ 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

Ho sviluppato il mio controllo dell'ambiente WordPress. È una classe semplice, funziona sul Web SAPI o sulla CLI. Questa è la versione mantenuta 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 ) );
    }
}

Basato sul lavoro di @rarst


3

Se stai usando Debian 7 (Debian Wheezy), devi installare PHP stesso e un piccolo numero di estensioni. Gran parte di ciò che è stato menzionato da @Rarst è già incluso in una delle installazioni PHP più basilari di Debian.

PHP

In Debian Wheezy hai quattro opzioni: libapache2-mod-php5 , libapache2-mod-php5filter , php5-cgi o php5-fpm . Scelgo php5-fpm ma tutto dipende da come vuoi che il tuo server web e PHP interagiscano.

MySQL

È inoltre necessario PHP per utilizzare MySQL. Le tue opzioni sono php5-mysql e php5-mysqlnd . php5-mysqlnd è nativo e generalmente più veloce. Alcuni potrebbero scegliere un'alternativa come MariaDB.

Libreria grafica Opzionale

Se si desidera ridimensionare le immagini, è possibile installare php5-gd o php5-imagick . php5-imagick ti darà una qualità migliore e Wordpress lo userà se è disponibile. Se sono installati entrambi, verrà utilizzato php5-imagick. Se nessuno dei due è installato, le immagini non verranno ridimensionate (e Wordpress non si lamenterà).

HTTP opzionale

Se installi php5-curl , verrà usato ma non è necessario per nulla tranne forse per prestazioni migliori.


Nient'altro è richiesto da Wordpress e dalla maggior parte delle estensioni, sebbene alcune estensioni possano avere altri requisiti.

Ecco la linea di installazione di base completa per fornire a Wordpress tutto ciò di cui ha bisogno per prestazioni ottimali e niente che non lo faccia:

apt-get install php5-fpm php5-mysqlnd php5-imagick php5-curl

2

Vale la pena ricordare che da WordPress 5.2 esiste una funzionalità integrata che riporta i moduli mancanti. Trovalo su Strumenti> Salute del sito.


1

Un piccolo "cheatsheet" durante l'installazione di PHP per Wordpress su Debian:

0. Aggiungi il repository dotdeb

Aggiungi queste due righe al tuo /etc/apt/sources.listfile:

deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all

Aggiungi la chiave GPG:

wget https://www.dotdeb.org/dotdeb.gpg
sudo apt-key add dotdeb.gpg

Aggiorna la "lista dei pacchetti":

sudo apt-get update

1. Installa PHP 7:

apt-get install php7.0-common libapache2-mod-php7.0 php7.0-cli

Fonte: http://php.net/manual/en/install.unix.debian.php

2. Elenco dei moduli inclusi nel pacchetto "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

Fonte: https://packages.debian.org/sid/amd64/php7.0-common/filelist

3. Per installare i moduli aggiuntivi richiesti / consigliati da wordpress:

apt-get install php7.0-curl php7.0-gd php7.0-mbstring php7.0-mcrypt php7.0-pspell php7.0-zip

Fonte: https://wordpress.stackexchange.com/a/42141/107878

4. Non ho trovato quanto segue su debian:

Openssl
Path Info Check
Zlib

5. "apt-cache search php7" restituisce:

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

Riferimento: https://packages.debian.org/source/sid/php7.0


1

Il manuale di WordPress ora elenca i moduli PHP consigliati:

Il core di WordPress utilizza estensioni PHP. Se manca l'estensione preferita, WordPress dovrà fare più lavoro per svolgere l'attività che il modulo aiuta o, nel peggiore dei casi, rimuoverà la funzionalità. Pertanto sono consigliate le estensioni PHP elencate di seguito.

  • bcmath: utilizzato per migliorare le prestazioni dei calcoli matematici.
  • arricciatura: esegue le operazioni di richiesta remota.
  • exif - Funziona con metadati memorizzati in immagini.
  • filtro: utilizzato per filtrare in modo sicuro l'input dell'utente.
  • fileinfo: utilizzato per rilevare il mimetipo dei caricamenti di file
  • mod_xml: utilizzato per generare XML, ad esempio per una Sitemap XML. Nota che mod_xml è un modulo Apache, non un'estensione PHP, ma è elencato per consapevolezza.
  • mysqli - Si collega a MySQL per le interazioni con il database.
  • libsodium - Genera byte casuali.
  • openssl - Permette connessioni basate su SSL ad altri host.
  • pcre - Aumenta le prestazioni della corrispondenza dei pattern nelle ricerche di codice.
  • imagick: offre una migliore qualità dell'immagine per i caricamenti multimediali. Vedi WP_Image_Editor in arrivo! per dettagli. Ridimensionamento delle immagini più intelligente (per immagini più piccole) e supporto delle miniature dei PDF, quando è disponibile anche Ghost Script.
  • xml: utilizzato per l'analisi XML, ad esempio da un sito di terze parti.

Elenca anche le seguenti estensioni PHP come facoltative:

  • gd - Se Imagick non è installato, la libreria grafica GD viene utilizzata come fallback funzionalmente limitato per la manipolazione delle immagini.
  • mcrypt - Genera byte casuali quando libsodium non è disponibile.
  • xmlreader: utilizzato per l'analisi XML.
  • zlib - Compressione e decompressione di Gzip.

Eh, mi chiedo cosa mod_xmlabbia a che fare con qualcosa dal momento che core non implementa sitemap XML né è legato all'esecuzione su un server web specifico.
Rarst

0

hai bisogno delle estensioni mysqli, pdo e gd. e talvolta xml-rpc.

Uso WP con l'estensione nativa mysqlnd da un po 'di tempo, è abbastanza pulito. Ha elementi di riflessione integrati, quindi se vuoi vedere cosa sta succedendo con il db in quella specifica richiesta, puoi farlo.

zip come estensione non è necessaria, la maggior parte dei programmi chiama il file eseguibile zip di sistema.


2
WP non utilizza il livello DOP. Probabilmente ci sono plugin che ti consentono di farlo, ma l'API del database di WP è ancora dai tempi antichi di PHP ...
onetrickpony
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.