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

12 feb 2012, 23:42:28
Visualizzazioni: 124K
Voti: 94

Il Codex menziona solo genericamente la versione PHP nei requisiti del server, tuttavia PHP può essere configurato con una vasta gamma di parti da escludere/includere.

Quali sono le estensioni/librerie che:

  1. sono necessarie per il funzionamento base di WordPress? MySQL...
  2. sono richieste per funzioni specifiche? GD ?...
  3. sono preferibili per un funzionamento ottimale di funzioni specifiche? cURL...
  4. sono comunemente utilizzate dai plugin? Zip...
5
Commenti

Sai che c'è un errore SSL sul tuo sito (https://queryposts.com/) ?

I am the Most Stupid Person I am the Most Stupid Person
19 lug 2018 12:31:11

@IamtheMostStupidPerson grazie, il rinnovo automatico del certificato era fallito per qualche motivo, ora dovrebbe essere risolto.

Rarst Rarst
19 lug 2018 14:37:46

Nessun problema, è Let's Encrypt, vero? Pensavo si rinnovasse automaticamente... Nel caso in cui non si rinnovi automaticamente come nel tuo caso, cosa possiamo fare?

I am the Most Stupid Person I am the Most Stupid Person
19 lug 2018 16:06:52

@IamtheMostStupidPerson il supporto di hosting lo ha resettato (era configurato tramite la loro integrazione), normalmente per me si rinnova automaticamente.

Rarst Rarst
19 lug 2018 16:25:12

Estremamente difficile da trovare, ma c'è una raccomandazione ufficiale: https://make.wordpress.org/hosting/handbook/handbook/server-environment/#php-extensions

Aidan Aidan
6 nov 2018 09:04:30
Tutte le risposte alla domanda 11
9
99

Ho riflettuto ulteriormente e considerando le dimensioni della codebase di WP (inclusi i librerie incluse) non sembra molto realistico compilare manualmente una tale lista (e ripeterla per ogni nuova versione - meh).

Ho cercato uno strumento di analisi statica del codice appropriato - PHP_CompatInfo e dopo qualche sperimentazione ho generato il seguente report delle estensioni utilizzate dal core (versione scansionata 3.3.1):

  • cURL - 127 utilizzi (richiede libcurl)

    • HTTP API (classe WP_Http_curl)
    • url_is_accessable_via_ssl()
    • SimplePie (sostituito con la classe WP_SimplePie_File)
    • GoogleSpell (dal pacchetto TinyMCE, non viene usato?)
  • Date/Time - 367 utilizzi

  • DOM - 6 utilizzi (richiede libxml)

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

  • Filter - 2 utilizzi

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

    • classe ftp_base
    • classe ftp (versioni pure e sockets)
    • classe WP_Filesystem_FTPext
    • classe WP_Filesystem_ftpsockets
  • GD - 56 utilizzi

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

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

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

    • opzionale, fallbacks in wp-includes/compat.php
  • libxml - 4 utilizzi

    • classe WP_oEmbed->_parse_xml() (opzionale)
    • SimplePie
  • Multibyte String - 29 utilizzi

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

    • classe wpdb
    • classe SimplePie_Cache (sostituito con la classe WP_Feed_Cache)
  • OpenSSL - 4 utilizzi

    • classe PHPMailer
  • PCRE - 743 utilizzi

  • SimpleXML - 1 utilizzo

    • classe WP_oEmbed (sembra opzionale)
  • Sockets - 64 utilizzi

    • classe ftp (implementazione sockets)
  • SPL - 3 utilizzi

  • Tokenizer - 3 utilizzi

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

  • XMLReader - 1 utilizzo

    • SimplePie (sembra opzionale)
  • Zlib - 30 utilizzi

13 feb 2012 21:55:40
Commenti

Ottima risorsa. Fortunatamente la maggior parte delle estensioni e librerie sopra menzionate sono ora compilate di default con PHP 5.2.4 e versioni successive.

Chris_O Chris_O
18 feb 2012 07:21:15

@Chris_O purché si segua la configurazione di default... Il team core ha detto più volte che ci sono alcune configurazioni PHP davvero strane là fuori nel mondo. Ciò che mi ha spinto a fare questa domanda è stato l'acquisto di un VPS al lavoro da un nuovo provider di hosting che, inaspettatamente, aveva una configurazione molto minima con alcune estensioni tipiche mancanti. Sarebbe più conveniente fornire supporto con una lista di controllo di queste estensioni, piuttosto che scoprirne e chiederne l'installazione una per una.

Rarst Rarst
18 feb 2012 18:14:10

Quale libreria viene utilizzata per decomprimere temi e plugin?

jgraup jgraup
24 nov 2016 23:23:37

@jgraup ZipArchive o PclZip vedi le relative funzioni di decompressione http://queryposts.com/?s=unzip_file

Rarst Rarst
24 nov 2016 23:46:10

Non smetti mai di stupirmi @Rarst ;-)

jgraup jgraup
25 nov 2016 00:04:37

Con v4.7 e la nuova anteprima/miniatura nativa per PDF, il tuo server ha bisogno del supporto per Imagick, ImageMagick e Ghostscript.

j08691 j08691
3 mar 2017 20:17:20

Manca l'estensione ORACLE e altri database...

NaN NaN
24 mar 2017 16:46:51

@EASI eh? WordPress non ha supporto nativo per nient'altro che MySQL.

Rarst Rarst
24 mar 2017 16:49:30

probabilmente vale la pena menzionare che quelle librerie potrebbero essere utilizzate dal core, ma dipende da configurazioni specifiche e percorsi di esecuzione. ad esempio FTP è improbabile che venga utilizzato se usi wp-cli per fare aggiornamenti del core e dei plugin.

Mark Kaplun Mark Kaplun
7 dic 2017 08:50:20
Mostra i restanti 4 commenti
1
27

La risposta potrebbe essere complicata e molto lunga, per quanto ne so, ci saranno anche alcune differenze tra server e sistemi operativi (IIS, Apache)... Non posso dire che la seguente lista sia COMPLETA, ma include alcuni di quelli che conosco e che sono necessari:

  • Curl e CurlSSL – Non sono sicuro che siano OBBLIGATORI, ma gran parte del codice di WordPress li utilizzerà se disponibili. Tuttavia, molti plugin richiedono queste funzionalità e/o avranno funzioni limitate senza di esse.

  • Exif – Consente al gestore dei media di WordPress di estrarre i dati Exif dalle immagini.

  • Gettext – Gestione dei file .po e .mo per la traduzione, localizzazione e internazionalizzazione.

  • FTP – Utilizzato per aggiornare plugin e WordPress tramite FTP.

  • GD – Non ha bisogno di presentazioni, vero?

  • Iconv – Conversioni di set di caratteri per tutto, dalla gestione delle email al parsing degli RSS.

  • Mbregex e Mbstring – Il nome è abbastanza descrittivo: forniscono funzioni utilizzate ovunque :-)

  • Mcrypt – Non necessario per WordPress, ma molti plugin ne hanno bisogno.

  • Mime Magic – Ora deprecato in WordPress, ma comunque utile per mantenere la compatibilità con le versioni precedenti.

  • Mysql e Mysql del sistema – Sappiamo tutti cos'è e perché è necessario, vero?

  • Openssl – Questa libreria viene utilizzata per gestire connessioni crittografate con certificati SSL, permettendo a WordPress di connettersi a qualsiasi posizione protetta da SSL (https).

  • POSIX – Utilizzato per garantire che WordPress mantenga correttamente i permessi e la proprietà dei file.

  • Path Info Check – Alcune configurazioni di permalink.

  • Pspell – Aggiunge capacità di controllo ortografico a TinyMCE.

  • Sockets – Gestione delle connessioni FTP e della gestione delle email, come SMTP e POP in WordPress.

  • Zip – Non sono sicuro che sia OBBLIGATORIO, ma questa classe compatibile con più piattaforme per la creazione ed estrazione di file zip verrà utilizzata da WordPress se disponibile.

  • Zlib – Utilizzato in molti casi, ad esempio per la compressione di file JS e CSS. Anche qui, non sicuro se OBBLIGATORIO, ma necessario.

Come detto sopra, questa non è affatto una lista COMPLETA – è stata compilata circa un anno fa e potrebbe aver bisogno di qualche aggiornamento. Molte di queste funzioni non sono esattamente OBBLIGATORIE, ma CONSIGLIATE. In molti casi, WordPress utilizzerà una funzione SE disponibile e, in caso contrario, ignorerà il compito. Un buon esempio è l'assenza della libreria GD: non impedirà a WordPress di funzionare, ma non ridimensionerà, ritaglierà o modificherà le immagini caricate, lasciando intatto il file originale (e disattivando l'opzione "dimensione" nella funzione "inserisci immagine nel post").

Come nota a margine, direi che forse questa domanda potrebbe ricevere risposte più accurate/aggiornate su serverfault.com che qui...

13 feb 2012 11:27:19
Commenti

Perché non si trova da nessuna parte sul sito di WordPress?

ttt ttt
20 mar 2017 11:27:18
2
14

(Questo non è inteso come una risposta. Solo alcune informazioni utili. Se pensi che queste informazioni non siano utili, fammi sapere, la cancellerò semplicemente.)

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

Avendo esperienza con Debian (& 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 raccomandato)
  • php-pear
  • php5-imap
  • php5-mcrypt
  • php5-pspell

I pacchetti sopra elencati installano tutte le estensioni/librerie/moduli menzionati nelle altre risposte; tutti, tranne Mime Magic, che non è più richiesto da WordPress.

Un altro buon modo per assicurarsi che il tuo server sia 100% compatibile con WordPress è controllare quali pacchetti le società di hosting gestito hanno preinstallato. Avendo anni di esperienza con le lamentele dei clienti riguardo alle incompatibilità, loro sanno meglio.

Nel caso di Hostgator, i moduli PHP che preinstallano includono (probabilmente ti serviranno la maggior parte ma non tutti):

Moduli PHP preinstallati da Hostgator

Media Temple fornisce un file phpinfo(); per controllare la loro configurazione. È utile anche per scopi di confronto.

10 feb 2013 05:17:51
Commenti

Cosa servono a 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 indiscriminatamente ed è un metodo poco efficace. Così come è sbagliata l'idea che si debba emulare gli ambienti di hosting condiviso quando si ha il controllo completo della propria installazione. Inoltre, dovresti scegliere un solo modo per eseguire PHP (FastCGI o CGI) ma non entrambi.

User User
10 lug 2014 03:50:50

A parte la versione (php5), questa è in realtà la migliore risposta qui... la domanda non chiede "a cosa servono", ma solo "quali" moduli. Ho votato positivamente!

GerardJP GerardJP
19 dic 2018 16:00:16
0
12

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

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

Questi comandi sono utili quando hai bisogno di un modo rapido per verificare i requisiti di sistema su un nuovo server e/o se vuoi elaborare ulteriormente questa lista in modo programmatico.

Ecco come funziona wp ext required:

$ wp ext required
+-----------+-----------+
| estensione | installata |
+-----------+-----------+
| 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         |
+-----------+-----------+
Successo: Tutte le estensioni richieste sono installate
18 gen 2018 18:12:59
0

Ho sviluppato il mio verificatore dell'ambiente WordPress. È una semplice classe, che funziona su web SAPI o su CLI. Questa è la versione mantenuta https://github.com/szepeviktor/debian-server-tools/blob/master/webserver/php-env-check.php

<?php
/**
 * Verifica l'ambiente PHP.
 *
 * Utilizzo attraverso un webserver
 *     wget -q -O - "https://example.com/php-env-check.php"; echo
 * Utilizzo su 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;

// Accesso locale solamente
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;
}

// Rimuove la versione cache di questo file
if ( function_exists( 'opcache_invalidate' ) ) {
    opcache_invalidate( __FILE__ );
}

// Verifica l'ambiente
$check = new Check_Env();
$status = empty( $check->errors );

// Mostra il report ed esce
print json_encode( $check->errors );
exit( $status ? 0 : 1 );

/**
 * Verifica la configurazione PHP.
 */
final class Check_Env {

    /**
     * Lista degli errori.
     */
    public $errors = array();

    /**
     * Esegue i controlli.
     *
     * @param void
     */
    public function __construct() {

        // Estensioni per WordPress su PHP 7.0
        // http://wordpress.stackexchange.com/a/42212

        // Versione del motore
        $this->assert( 'php', 70013, PHP_VERSION_ID );

        // Direttive core
        $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' );

        // Estensioni compilate
        // 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' );

        // Estensioni comuni
        // 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 userà mysqli attraverso 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' );

        // Estensioni deprecate
        $this->assert_disabled_extension( 'mcrypt' );
        $this->assert_disabled_extension( 'mysql' );

        // Estensioni disabilitate
        // 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' );

        // Estensioni di terze parti

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

        // Non per WordPress

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

    /**
     * Semplice assert.
     *
     * @param $id string       ID dell'assert
     * @param $expected string Valore atteso
     * @param $result string   Valore corrente
     */
    private function assert( $id, $expected, $result ) {

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

    /**
     * Assert per un'estensione PHP.
     *
     * @param $extension_name string Nome dell'estensione
     * @param $id string             ID opzionale dell'assert
     */
    private function assert_extension( $extension_name, $id = '' ) {

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

    /**
     * Assert negativo per un'estensione PHP.
     *
     * @param $extension_name string Nome dell'estensione
     * @param $id string             ID opzionale dell'assert
     */
    private function assert_disabled_extension( $extension_name, $id = '' ) {

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

    /**
     * Assert per una direttiva PHP.
     *
     * @param $directive_name string Nome della direttiva
     * @param $expected string       Valore atteso
     * @param $id string             ID opzionale dell'assert
     */
    private function assert_directive( $directive_name, $expected, $id = '' ) {

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

Basato sul lavoro di @rarst

24 nov 2016 21:14:41
2

Il manuale di WordPress ora elenca i moduli PHP consigliati:

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

  • curl – Esegue operazioni di richiesta remota.
  • exif – Lavora con i metadati archiviati nelle immagini.
  • filter – Utilizzato per filtrare in modo sicuro l'input dell'utente.
  • fileinfo – Utilizzato per rilevare il mimetype dei file caricati
  • mod_xml – Utilizzato per generare XML, come per una sitemap XML. Nota che mod_xml è un modulo Apache, non un'estensione PHP, ma è elencato per completezza.
  • mysqli – Si connette a MySQL per le interazioni con il database.
  • libsodium – Genera byte casuali.
  • openssl – Permette connessioni SSL-based ad altri host.
  • pcre – Aumenta le prestazioni nella corrispondenza dei pattern nelle ricerche di codice.
  • imagick – Fornisce una migliore qualità dell'immagine per i caricamenti multimediali. Vedi WP_Image_Editor is incoming! per dettagli. Ridimensionamento più intelligente delle immagini (per immagini più piccole) e supporto per miniature PDF, quando Ghost Script è anche disponibile.
  • xml – Utilizzato per il parsing XML, ad esempio da un sito di terze parti.

Elenca anche le seguenti estensioni PHP come opzionali:

  • 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 il parsing XML.
  • zlib – Compressione e decompressione Gzip.
1 giu 2019 07:09:07
Commenti

Eh, mi chiedo cosa c'entri mod_xml con tutto questo dato che il core non implementa né le sitemap XML né è legato all'esecuzione su un server web specifico.

Rarst Rarst
2 giu 2019 11:21:26

Nota: bcmath è stato rimosso da quella lista nella pagina da quando è stata data questa risposta.

Robert Dundon Robert Dundon
20 ott 2020 06:08:28
0

Se stai utilizzando Debian 7 (Debian Wheezy), devi installare PHP stesso e un piccolo numero di estensioni. La maggior parte di quanto menzionato da @Rarst è già incluso in una delle installazioni PHP più basilari di Debian.

PHP

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

MySQL

Hai anche bisogno che PHP utilizzi 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 vuoi ridimensionare le immagini, puoi installare php5-gd o php5-imagick. php5-imagick ti darà una qualità migliore e Wordpress lo utilizzerà se disponibile. Se entrambi sono installati, 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à utilizzato ma non è richiesto per nulla tranne forse per prestazioni migliori.


Nient'altro è richiesto da Wordpress e dalla maggior parte delle estensioni, anche se alcune estensioni potrebbero avere altri requisiti.

Ecco la riga di installazione completa di base per dare a Wordpress tutto ciò di cui ha bisogno per prestazioni ottimali e niente di più:

apt-get install php5-fpm php5-mysqlnd php5-imagick php5-curl
11 lug 2014 01:31:49
0

Vale la pena menzionare che a partire da WordPress 5.2, esiste una funzionalità integrata che segnala i moduli mancanti. Puoi trovarla in Strumenti > Salute del sito.

29 lug 2019 07:13:16
0

Una piccola "cheatsheet" per l'installazione di PHP per WordPress su Debian:

0. Aggiungere il repository dotdeb

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

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. Installare 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. Lista 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 sono riuscito a trovare i seguenti su Debian:

Openssl
Path Info Check
Zlib

5. Il comando "apt-cache search php7" restituisce:

php7.0 - linguaggio di scripting incorporato HTML, lato server (metapacchetto)
php7.0-apcu - APC User Cache per PHP
php7.0-apcu-bc - Modulo di compatibilità all'indietro per APCu
php7.0-bcmath - Modulo Bcmath per PHP
php7.0-bz2 - modulo bzip2 per PHP
php7.0-cgi - linguaggio di scripting incorporato HTML, lato server (binario CGI)
php7.0-cli - interprete da riga di comando per il linguaggio di scripting PHP
php7.0-common - documentazione, esempi e modulo comune per PHP
php7.0-curl - modulo CURL per PHP
php7.0-dba - modulo DBA per PHP
php7.0-dbg - Simboli di debug per PHP7.0
php7.0-dev - File per lo sviluppo di moduli PHP7.0
php7.0-enchant - Modulo Enchant per PHP
php7.0-fpm - linguaggio di scripting incorporato HTML, lato server (binario FPM-CGI)
php7.0-gd - modulo GD per PHP
php7.0-geoip - modulo GeoIP per PHP
php7.0-gmp - modulo GMP per PHP
php7.0-igbinary - serializzatore igbinary per PHP
php7.0-imagick - Fornisce un wrapper per la libreria ImageMagick
php7.0-imap - modulo IMAP per PHP
php7.0-interbase - modulo Interbase per PHP
php7.0-intl - modulo di internazionalizzazione per PHP
php7.0-json - modulo JSON per PHP
php7.0-ldap - modulo LDAP per PHP
php7.0-mbstring - modulo MBSTRING per PHP
php7.0-mcrypt - modulo libmcrypt per PHP
php7.0-memcached - modulo di estensione memcached per PHP, utilizza libmemcached
php7.0-mongodb - driver MongoDB per PHP
php7.0-msgpack - serializzatore MessagePack per PHP
php7.0-mysql - modulo MySQL per PHP
php7.0-odbc - modulo ODBC per PHP
php7.0-opcache - modulo Zend OpCache per PHP
php7.0-pgsql - modulo PostgreSQL per PHP
php7.0-phpdbg - linguaggio di scripting incorporato HTML, lato server (binario PHPDBG)
php7.0-pspell - modulo pspell per PHP
php7.0-readline - modulo readline per PHP
php7.0-recode - modulo recode per PHP
php7.0-redis - Estensione PHP per interfacciarsi con Redis
php7.0-snmp - modulo SNMP per PHP
php7.0-soap - modulo SOAP per PHP
php7.0-sqlite3 - modulo SQLite3 per PHP
php7.0-ssh2 - Binding per la libreria libssh2
php7.0-sybase - modulo Sybase per PHP
php7.0-tidy - modulo tidy per PHP
php7.0-xdebug - Modulo Xdebug per PHP
php7.0-xml - modulo DOM, SimpleXML, WDDX, XML e XSL per PHP
php7.0-xmlrpc - modulo XMLRPC-EPI per PHP
php7.0-xsl - modulo XSL per PHP (dummy)
php7.0-zip - modulo Zip per PHP

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

20 mar 2017 11:57:10
0

Ufficialmente, WordPress.org afferma che solo le seguenti estensioni PHP sono richieste a partire da WP Core 5.3+ e quando si utilizza la versione consigliata di PHP, attualmente PHP 7.2:

curl -- Esegue operazioni di richiesta remota.
dom -- Utilizzato per convalidare il contenuto dei widget di testo e per configurare automaticamente IIS7+.
exif -- Lavora con i metadati archiviati nelle immagini.
fileinfo -- Utilizzato per rilevare il mimetype dei file caricati.
hash -- Utilizzato per l'hashing, inclusi password e pacchetti di aggiornamento.
json -- Utilizzato per le comunicazioni con altri server.
mbstring -- Utilizzato per gestire correttamente il testo UTF8.
mysqli -- Si connette a MySQL per le interazioni con il database.
libsodium -- Convalida le firme e fornisce byte casuali in modo sicuro.
openssl -- Consente connessioni SSL ad altri host.
pcre -- Aumenta le prestazioni della corrispondenza dei modelli nelle ricerche di codice.
imagick -- Fornisce una migliore qualità dell'immagine per i caricamenti multimediali. Vedi WP_Image_Editor è in arrivo! per i dettagli. Ridimensionamento più intelligente delle immagini (per immagini più piccole) e supporto per miniature PDF, quando Ghost Script è disponibile.
xml -- Utilizzato per l'analisi XML, ad esempio da un sito di terze parti.
zip -- Utilizzato per decomprimere plugin, temi e pacchetti di aggiornamento di WordPress.

...ma raccomandano anche le seguenti estensioni opzionali:

filter -- Utilizzato per filtrare in modo sicuro l'input dell'utente.
gd -- Se Imagick non è installato, la libreria grafica GD viene utilizzata come alternativa funzionalmente limitata per la manipolazione delle immagini.
iconv -- Utilizzato per convertire tra set di caratteri.
mcrypt -- Genera byte casuali quando libsodium e /dev/urandom non sono disponibili.
simplexml -- Utilizzato per l'analisi XML.
xmlreader -- Utilizzato per l'analisi XML.
zlib -- Compressione e decompressione Gzip.

Tieni presente, tuttavia, che alcune di queste estensioni richieste (o opzionali) sono già incluse in altri pacchetti PHP. Ad esempio, dom è spesso incluso nell'estensione xml. E altre come fileinfo sono probabilmente già installate come parte di un cosiddetto pacchetto php-common se stai utilizzando Ubuntu, ecc.

Inoltre, ci sono alcune altre estensioni come bcmath che non sono ufficialmente richieste o raccomandate da WordPress, ma sono comunque utilizzate da molti plugin popolari, come Yoast SEO.

Puoi seguire la nostra lista delle estensioni PHP per WordPress su LittleBizzy se sei interessato.

6 feb 2020 14:40:48
1

sono necessarie le estensioni mysqli, pdo e gd. e a volte xml-rpc.

Sto utilizzando WP con l'estensione nativa mysqlnd da un po' di tempo ed è davvero interessante. Ha funzionalità di reflection integrate, quindi se vuoi vedere cosa succede con il database in quella specifica richiesta, puoi farlo.

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

13 feb 2012 17:10:18
Commenti

WP non utilizza il layer PDO. Probabilmente esistono plugin che ti permettono di farlo, ma l'API del database di WP risale ancora ai tempi antichi di PHP...

onetrickpony onetrickpony
13 feb 2012 20:36:58