Ce extensii și biblioteci PHP are nevoie și/sau folosește WordPress?

12 feb. 2012, 23:42:28
Vizualizări: 124K
Voturi: 94

Codexul menționează doar vag versiunea PHP în cerințele de server, totuși PHP poate fi configurat într-o gamă largă de excludere/includere a diferitelor componente.

Care sunt extensiile/bibliotecile care:

  1. sunt necesare pentru ca WordPress să funcționeze? MySQL...
  2. sunt necesare pentru funcții specifice? GD ?...
  3. sunt preferate pentru cea mai bună funcționare a funcțiilor specifice? cURL...
  4. sunt folosite în mod obișnuit de plugin-uri? Zip...
5
Comentarii

Știai că există o eroare SSL pe site-ul tău (https://queryposts.com/) ?

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

@IamtheMostStupidPerson mulțumesc, reînnoirea automată a certificatului a eșuat din nu știu ce motiv, ar trebui să fie rezolvat acum.

Rarst Rarst
19 iul. 2018 14:37:46

Nicio problemă, este Let's Encrypt, nu-i așa? Credeam că se reînnoiește automat... În cazul în care nu se reînnoiește automat ca în situația ta, ce putem face?

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

@IamtheMostStupidPerson echipa de suport pentru hosting a resetat-o (a fost configurată prin integrarea lor), de obicei se reînnoiește automat pentru mine.

Rarst Rarst
19 iul. 2018 16:25:12

Foarte greu de găsit, dar există o recomandare oficială: https://make.wordpress.org/hosting/handbook/handbook/server-environment/#php-extensions

Aidan Aidan
6 nov. 2018 09:04:30
Toate răspunsurile la întrebare 11
9
99

M-am gândit mai bine și având în vedere dimensiunea bazei de cod WordPress (inclusiv bibliotecile incluse), nu pare foarte realist să compilăm manual o astfel de listă (și să o repetăm pentru fiecare versiune nouă - meh).

Am căutat un instrument adecvat de analiză statică a codului - PHP_CompatInfo și după ce am experimentat puțin, am generat următorul raport al extensiilor folosite de nucleu (versiunea scanată 3.3.1):

  • cURL - 127 utilizări (necesită libcurl)

    • API HTTP (clasa WP_Http_curl)
    • url_is_accessable_via_ssl()
    • SimplePie (suprascris cu clasa WP_SimplePie_File)
    • GoogleSpell (din pachetul TinyMCE, nu este folosit?)
  • Data/Ora - 367 utilizări

  • DOM - 6 utilizări (necesită libxml)

    • iis7_rewrite_rule_exists()
    • iis7_delete_rewrite_rule()
    • iis7_add_rewrite_rule()
    • saveDomDocument()
  • Regex POSIX - 23 utilizări

  • Filtru - 2 utilizări

    • clasa PHPMailer->ValidateAddress() (opțional)
  • FTP - 72 utilizări

    • clasa ftp_base
    • clasa ftp (versiunile pure și sockets)
    • clasa WP_Filesystem_FTPext
    • clasa WP_Filesystem_ftpsockets
  • GD - 56 utilizări

    • wp-admin\includes\image-edit.php
    • wp-admin\includes\image.php
    • wp-includes\media.php
  • Hash - 6 utilizări

    • wp-includes\pluggable.php multiple utilizări (opțional - rezervă în wp-includes\compat.php)
  • iconv - 5 utilizări

    • clasa SimplePie (opțional)
    • wp_check_invalid_utf8() (opțional)
    • wp-mail.php (opțional)
  • JSON - 20 utilizări

    • opțional, rezerve în wp-includes/compat.php
  • libxml - 4 utilizări

    • clasa WP_oEmbed->_parse_xml() (opțional)
    • SimplePie
  • String Multibyte - 29 utilizări

    • unele rezerve în wp-includes/compat.php
  • MySQL - 60 utilizări

    • clasa wpdb
    • clasa SimplePie_Cache (suprascris cu clasa WP_Feed_Cache)
  • OpenSSL - 4 utilizări

    • clasa PHPMailer
  • PCRE - 743 utilizări

  • SimpleXML - 1 utilizare

    • clasa WP_oEmbed (pare opțional)
  • Sockets - 64 utilizări

    • clasa ftp (implementarea sockets)
  • SPL - 3 utilizări

  • Tokenizer - 3 utilizări

    • wp_doc_link_parse() (opțional)
  • XML Parser - 89 utilizări

  • XMLReader - 1 utilizare

    • SimplePie (pare opțional)
  • Zlib - 30 utilizări

13 feb. 2012 21:55:40
Comentarii

Resursă excelentă. Din fericire, majoritatea extensiilor și bibliotecilor menționate mai sus sunt acum compilate implicit în PHP 5.2.4 și versiunile ulterioare.

Chris_O Chris_O
18 feb. 2012 07:21:15

@Chris_O atâta timp cât se respectă configurația implicită... Echipa de dezvoltare a menționat de mai multe ori că există unele configurații PHP foarte ciudate în mediul real. Ceea ce a determinat această întrebare din partea mea a fost achiziționarea unui VPS la serviciu de la un nou furnizor de hosting, care, în mod neașteptat, avea o configurație minimă cu unele extensii tipice lipsă. Ar fi mai convenabil să ofereți suport cu o astfel de listă de verificare a extensiilor, decât să descoperiți și să cereți instalarea lor una câte una.

Rarst Rarst
18 feb. 2012 18:14:10

Care bibliotecă este folosită pentru decomprimarea temelor și plugin-urilor?

jgraup jgraup
24 nov. 2016 23:23:37

@jgraup ZipArchive sau PclZip vezi funcțiile conexe de decomprimare http://queryposts.com/?s=unzip_file

Rarst Rarst
24 nov. 2016 23:46:10

Nu încetezi să mă uimești @Rarst ;-)

jgraup jgraup
25 nov. 2016 00:04:37

Cu v4.7 și noua previzualizare/thumbnail nativ pentru PDF, serverul tău are nevoie de suport pentru Imagick, ImageMagick și Ghostscript.

j08691 j08691
3 mar. 2017 20:17:20

Lipsește extensia ORACLE și alte baze de date...

NaN NaN
24 mar. 2017 16:46:51

@EASI hm? WordPress nu are suport nativ pentru altceva decât MySQL.

Rarst Rarst
24 mar. 2017 16:49:30

probabil merită menționat că acele biblioteci ar putea fi folosite de nucleu, dar depinde de configurațiile specifice și căile de execuție. de exemplu, FTP este puțin probabil să fie folosit dacă utilizezi wp-cli pentru actualizările de nucleu și pluginuri.

Mark Kaplun Mark Kaplun
7 dec. 2017 08:50:20
Arată celelalte 4 comentarii
1
27

Răspunsul la această întrebare poate fi complicat și foarte lung, din câte știu, vor exista și unele diferențe între servere și sistemele de operare (IIS, Apache). Nu pot spune că următorul listă este completă, dar include unele dintre cele pe care le cunosc ca fiind necesare:

  • Curl și CurlSSL – Nu sunt sigur că sunt OBLIGATORII, dar o mare parte din codul WordPress le va folosi dacă sunt disponibile. Multe plugin-uri însă necesită aceste funcții și/sau vor avea funcții limitate fără ele.

  • Exif – permite sistemului de gestionare a fișierelor media din WordPress să extragă datele Exif din imagini.

  • Gettext – gestionarea fișierelor .po și .mo pentru traducere, localizare și internaționalizare.

  • FTP – folosit pentru actualizările de plugin-uri și WordPress prin FTP.

  • GD – Nu este nevoie de prezentare, nu-i așa?

  • Iconv – conversii de seturi de caractere pentru tot, de la e-mailuri la parsarea RSS.

  • Mbregex și Mbstring – numele sunt destul de descriptive – oferă funcții folosite peste tot :-)

  • Mcrypt – Nu este necesar pentru WordPress, dar multe plugin-uri au nevoie de el.

  • Mime Magic – Învechit acum în WordPress, dar încă bun de avut pentru compatibilitate inversă.

  • Mysql și Mysql al sistemului – cu toții știm ce este și de ce este necesar, nu?

  • Openssl – Această bibliotecă este folosită pentru a gestiona conexiunile criptate cu certificate SSL, astfel încât WordPress să poată conecta la orice locație criptată SSL (https).

  • POSIX – folosit pentru a asigura că WordPress menține corect permisiunile și proprietățile fișierelor.

  • Path Info Check – unele configurații de permalink-uri.

  • Pspell – adaugă capacitatea de verificare ortografică în TinyMCE.

  • Sockets – gestionarea conexiunilor FTP și a trimiterii de e-mailuri, adică SMTP și POP în WordPress.

  • Zip – Nu sunt sigur dacă este OBLIGATORIU, dar această clasă compatibilă pe mai multe platforme pentru crearea și extragerea fișierelor zip VA fi folosită de WordPress dacă este disponibilă.

  • Zlib – Folosit în multe cazuri, de exemplu – compresia fișierelor js și css. Din nou, nu sunt sigur dacă este OBLIGATORIU, dar este necesar.

După cum s-a menționat mai sus – aceasta nu este cu siguranță o listă COMPLETĂ – a fost compilată acum aproximativ un an – și ar putea avea nevoie de o actualizare. Multe dintre aceste funcții nu sunt exact OBLIGATORII, ci RECOMANDATE. În multe cazuri, WordPress va folosi o funcție DACĂ este disponibilă, iar dacă nu, va ignora sarcina. Un bun exemplu este lipsa bibliotecii GD – nu va opri WordPress să funcționeze, dar nu va tăia, redimensiona sau modifica imaginile încărcate – lăsând imaginea originală (și dezactivând opțiunea "dimensiune" în funcția "inserare imagine în postare")..

Ca o observație suplimentară – aș spune că poate această întrebare ar primi răspunsuri mai corecte/actualizate pe serverfault.com decât aici...

13 feb. 2012 11:27:19
Comentarii

De ce nu se găsește asta nicăieri pe site-ul WordPress?

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

(Acesta nu este destinat să fie un răspuns. Doar câteva informații utile. Dacă considerați că aceste informații nu sunt utile, anunțați-mă și le voi șterge pur și simplu.)

Cred că vorbirea în termeni de pachete ar fi mai ușoară pentru începători, dar deoarece pachetele variază de la un sistem la altul, este dificil să le acoperim pe toate.

Având experiență cu Debian (& distribuții bazate pe Debian), aș dori să împărtășesc aceste informații specifice:

  • php5-cli
  • php5-dev
  • php5-fpm
  • php5-cgi
  • php5-mysql
  • php5-xmlrpc
  • php5-curl
  • php5-gd
  • php-apc (nu este obligatoriu, dar este recomandat)
  • php-pear
  • php5-imap
  • php5-mcrypt
  • php5-pspell

Pachetele menționate mai sus instalează toate extensiile/bibliotecile/modulele menționate în celelalte răspunsuri; toate, cu excepția Mime Magic, care nu mai este necesar pentru WordPress.

O altă modalitate bună de a vă asigura că serverul dvs. este 100% compatibil cu WordPress este să verificați ce pachete vin preinstalate pe companiile de găzduire gestionată. Deoarece acestea au ani de experiență cu plângerile clienților privind incompatibilitățile, vor ști mai bine.

În cazul Hostgator, modulele PHP pe care le instalează prealabil includ (probabil veți avea nevoie doar de cele mai multe, dar nu de toate):

Module PHP preinstalate de Hostgator

Media Temple oferă un fișier phpinfo(); pentru a vă verifica configurația. Este util și pentru comparații.

10 feb. 2013 05:17:51
Comentarii

De ce are WP nevoie de php5-cli, php5-dev, (php5-fpm && php5-cgi), php5-pear, php5-imap și php5-pspell? Abordarea ta pare să fie doar să instalezi tot și este una slabă. La fel și ideea că ar trebui să imiți mediile de hosting partajat dacă ai control asupra instalării tale. De asemenea, ar trebui să alegi o singură metodă de a rula PHP (FastCGI sau CGI), dar nu pe ambele.

User User
10 iul. 2014 03:50:50

În afară de versiune (php5), acesta este de fapt cel mai bun răspuns aici.. întrebarea nu precizează 'pentru ce', ci doar 'care' module. Am votat în sus!

GerardJP GerardJP
19 dec. 2018 16:00:16
0
12

Dacă dorești o modalitate ușoară de a verifica dacă serverul tău îndeplinește aceste cerințe, acum există o comandă WP-CLI ext utilă pentru asta.

wp ext required afișează toate extensiile PHP necesare pentru a rula WordPress, în timp ce wp ext recommended afișează cele opționale. wp ext check este o combinație a ambelor comenzi.

Acestea sunt utile atunci când ai nevoie de o metodă rapidă de a verifica cerințele de sistem pe un server nou și/sau dacă dorești să procesezi această listă programatic.

Iată cum funcționează 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
18 ian. 2018 18:12:59
0

Am dezvoltat propriul meu verificator de mediu WordPress. Este o clasă simplă, care rulează pe SAPI web sau pe CLI. Aceasta este versiunea întreținută https://github.com/szepeviktor/debian-server-tools/blob/master/webserver/php-env-check.php

<?php
/**
 * Verifică mediul PHP.
 *
 * Utilizare prin intermediul unui server web
 *     wget -q -O - "https://example.com/php-env-check.php"; echo
 * Utilizare pe CLI
 *     php /calea/către/php-env-check.php
 *
 * @package php-env-check
 * @version 0.2.0
 * @author Viktor Szépe <viktor@szepe.net>
 */

namespace O1;

// Acces doar local
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;
}

// Elimină versiunea cache a acestui fișier
if ( function_exists( 'opcache_invalidate' ) ) {
    opcache_invalidate( __FILE__ );
}

// Verifică mediul
$check = new Check_Env();
$status = empty( $check->errors );

// Afișează raportul și iese
print json_encode( $check->errors );
exit( $status ? 0 : 1 );

/**
 * Verifică configurația PHP.
 */
final class Check_Env {

    /**
     * Lista de erori.
     */
    public $errors = array();

    /**
     * Rulează verificările.
     *
     * @param void
     */
    public function __construct() {

        // Extensii pentru WordPress pe PHP 7.0
        // http://wordpress.stackexchange.com/a/42212

        // Versiunea motorului
        $this->assert( 'php', 70013, PHP_VERSION_ID );

        // Directive de bază
        $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' );

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

        // Extensii comune
        // 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 va folosi mysqli prin mysqlnd (fără 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' );

        // Extensii depreciate
        $this->assert_disabled_extension( 'mcrypt' );
        $this->assert_disabled_extension( 'mysql' );

        // Extensii dezactivate
        // calendar fileinfo pcntl PDO pdo_mysql Phar readline
        // shmop sysvmsg(mesaje System V) sysvsem(semafor System V) sysvshm(memorie partajată System V) 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' );

        // Extensii de la terți

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

        // Nu pentru WordPress

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

    /**
     * Aserțiune simplă.
     *
     * @param $id string       ID-ul aserțiunii
     * @param $expected string Valoarea așteptată
     * @param $result string   Valoarea curentă
     */
    private function assert( $id, $expected, $result ) {

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

    /**
     * Aserțiune pentru o extensie PHP.
     *
     * @param $extension_name string Numele extensiei
     * @param $id string             ID-ul opțional al aserțiunii
     */
    private function assert_extension( $extension_name, $id = '' ) {

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

    /**
     * Aserțiune negativă pentru o extensie PHP.
     *
     * @param $extension_name string Numele extensiei
     * @param $id string             ID-ul opțional al aserțiunii
     */
    private function assert_disabled_extension( $extension_name, $id = '' ) {

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

    /**
     * Aserțiune pentru o directivă PHP.
     *
     * @param $directive_name string Numele directivei
     * @param $expected string       Valoarea așteptată
     * @param $id string             ID-ul opțional al aserțiunii
     */
    private function assert_directive( $directive_name, $expected, $id = '' ) {

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

Bazat pe munca lui @rarst

24 nov. 2016 21:14:41
2

Manualul WordPress listează acum modulele PHP recomandate:

Nucleul WordPress utilizează extensii PHP. Dacă extensia preferată nu este instalată, WordPress va fi nevoit să facă mai multe operațiuni pentru a îndeplini sarcina pe care modulul o facilitează sau, în cel mai rău caz, va elimina funcționalități. Prin urmare, extensiile PHP enumerate mai jos sunt recomandate.

  • curl – Efectuează operațiuni de cerere la distanță.
  • exif – Lucrează cu metadate stocate în imagini.
  • filter – Utilizat pentru filtrarea securizată a datelor introduse de utilizatori.
  • fileinfo – Utilizat pentru detectarea tipului MIME al fișierelor încărcate.
  • mod_xml – Utilizat pentru generarea de XML, cum ar fi pentru o hartă de site XML. Rețineți că mod_xml este un modul Apache, nu o extensie PHP, dar este listat pentru informare.
  • mysqli – Conectare la MySQL pentru interacțiuni cu baza de date.
  • libsodium – Generează bytes aleatori.
  • openssl – Permite conexiuni bazate pe SSL la alte gazde.
  • pcre – Crește performanța potrivirii de modele în căutările de cod.
  • imagick – Oferă o calitate mai bună a imaginilor pentru încărcările media. Consultați WP_Image_Editor is incoming! pentru detalii. Redimensionare mai inteligentă a imaginilor (pentru imagini mai mici) și suport pentru miniaturi PDF, atunci când Ghost Script este de asemenea disponibil.
  • xml – Utilizat pentru analizarea XML, cum ar fi de la un site terț.

De asemenea, listează următoarele extensii PHP ca fiind opționale:

  • gd – Dacă Imagick nu este instalat, Biblioteca Grafică GD este utilizată ca o soluție de rezervă cu funcționalități limitate pentru manipularea imaginilor.
  • mcrypt – Generează bytes aleatori atunci când libsodium nu este disponibil.
  • xmlreader – Utilizat pentru analizarea XML.
  • zlib – Compresie și decomprimare Gzip.
1 iun. 2019 07:09:07
Comentarii

Hmm, mă întreb ce legătură are mod_xml cu orice, deoarece nucleul WordPress nici nu implementează hărți site XML și nici nu este legat de rularea pe un anumit server web.

Rarst Rarst
2 iun. 2019 11:21:26

Notă: bcmath a fost eliminat din acea listă de pe pagină de la acest răspuns.

Robert Dundon Robert Dundon
20 oct. 2020 06:08:28
0

Dacă folosești Debian 7 (Debian Wheezy), trebuie să instalezi PHP în sine și un număr mic de extensii. Majoritatea lucrurilor menționate de @Rarst sunt deja incluse într-una dintre cele mai de bază instalări PHP din Debian.

PHP

Ai patru opțiuni în Debian Wheezy: libapache2-mod-php5, libapache2-mod-php5filter, php5-cgi, sau php5-fpm. Eu aleg php5-fpm, dar totul depinde de modul în care dorești ca serverul tău web și PHP să interacționeze.

MySQL

De asemenea, ai nevoie de PHP pentru a folosi MySQL. Opțiunile tale sunt php5-mysql și php5-mysqlnd. php5-mysqlnd este nativ și, în general, mai rapid. Unii ar putea alege o alternativă precum MariaDB.

Bibliotecă grafică Opțional

Dacă dorești să redimensionezi imaginile, poți instala fie php5-gd, fie php5-imagick. php5-imagick îți va oferi o calitate mai bună, iar WordPress îl va folosi dacă este disponibil. Dacă ambele sunt instalate, php5-imagick va fi utilizat. Dacă niciunul nu este instalat, imaginile nu vor fi redimensionate (și WordPress nu se va plânge).

HTTP Opțional

Dacă instalezi php5-curl, acesta va fi folosit, dar nu este necesar pentru nimic în afară de o posibilă îmbunătățire a performanței.


WordPress nu necesită nimic altceva, iar majoritatea extensiilor de asemenea, deși unele extensii pot avea alte cerințe.

Iată linia completă de instalare de bază pentru a oferi WordPress tot ce are nevoie pentru o performanță optimă și nimic în plus:

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

Este important de menționat că începând cu WordPress 5.2, există o funcționalitate integrată care raportează modulele lipsă. O puteți găsi la Instrumente > Sănătatea site-ului.

29 iul. 2019 07:13:16
0

Un mic "ghid rapid" pentru instalarea PHP pentru WordPress pe Debian:

0. Adăugați repository-ul dotdeb

Adăugați aceste două linii în fișierul /etc/apt/sources.list:

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

Adăugați cheia GPG:

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

Actualizați "lista de pachete":

sudo apt-get update

1. Instalați PHP 7:

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

Sursă: http://php.net/manual/en/install.unix.debian.php

2. Lista modulelor incluse în pachetul "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

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

3. Pentru a instala modulele suplimentare recomandate/necesare pentru WordPress:

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

Sursă: https://wordpress.stackexchange.com/a/42141/107878

4. Nu am reușit să găsesc următoarele pe Debian:

Openssl
Path Info Check
Zlib

5. "apt-cache search php7" returnează:

php7.0 - limbaj de scripting încorporat în HTML, parte de server (metapachet)
php7.0-apcu - Cache utilizator APC pentru PHP
php7.0-apcu-bc - Modul de compatibilitate inversă APCu
php7.0-bcmath - Modul Bcmath pentru PHP
php7.0-bz2 - modul bzip2 pentru PHP
php7.0-cgi - limbaj de scripting încorporat în HTML, parte de server (binar CGI)
php7.0-cli - interpret de linie de comandă pentru PHP
php7.0-common - documentație, exemple și modul comun pentru PHP
php7.0-curl - Modul CURL pentru PHP
php7.0-dba - Modul DBA pentru PHP
php7.0-dbg - Simboluri de depanare pentru PHP7.0
php7.0-dev - Fișiere pentru dezvoltarea de module PHP7.0
php7.0-enchant - Modul Enchant pentru PHP
php7.0-fpm - limbaj de scripting încorporat în HTML, parte de server (binar FPM-CGI)
php7.0-gd - Modul GD pentru PHP
php7.0-geoip - Modul GeoIP pentru PHP
php7.0-gmp - Modul GMP pentru PHP
php7.0-igbinary - Serializator igbinary pentru PHP
php7.0-imagick - Oferă un wrapper pentru biblioteca ImageMagick
php7.0-imap - Modul IMAP pentru PHP
php7.0-interbase - Modul Interbase pentru PHP
php7.0-intl - Modul de internaționalizare pentru PHP
php7.0-json - Modul JSON pentru PHP
php7.0-ldap - Modul LDAP pentru PHP
php7.0-mbstring - Modul MBSTRING pentru PHP
php7.0-mcrypt - Modul libmcrypt pentru PHP
php7.0-memcached - Modul memcached pentru PHP, folosește libmemcached
php7.0-mongodb - Driver MongoDB pentru PHP
php7.0-msgpack - Serializator MessagePack pentru PHP
php7.0-mysql - Modul MySQL pentru PHP
php7.0-odbc - Modul ODBC pentru PHP
php7.0-opcache - Modul Zend OpCache pentru PHP
php7.0-pgsql - Modul PostgreSQL pentru PHP
php7.0-phpdbg - limbaj de scripting încorporat în HTML, parte de server (binar PHPDBG)
php7.0-pspell - Modul pspell pentru PHP
php7.0-readline - Modul readline pentru PHP
php7.0-recode - Modul recode pentru PHP
php7.0-redis - Extensie PHP pentru interfața cu Redis
php7.0-snmp - Modul SNMP pentru PHP
php7.0-soap - Modul SOAP pentru PHP
php7.0-sqlite3 - Modul SQLite3 pentru PHP
php7.0-ssh2 - Legături pentru biblioteca libssh2
php7.0-sybase - Modul Sybase pentru PHP
php7.0-tidy - Modul tidy pentru PHP
php7.0-xdebug - Modul Xdebug pentru PHP
php7.0-xml - Modul pentru DOM, SimpleXML, WDDX, XML și XSL pentru PHP
php7.0-xmlrpc - Modul XMLRPC-EPI pentru PHP
php7.0-xsl - Modul XSL pentru PHP (dummy)
php7.0-zip - Modul Zip pentru PHP

Referință: https://packages.debian.org/source/sid/php7.0

20 mar. 2017 11:57:10
0

Oficial, WordPress.org afirmă că doar următoarele extensii PHP sunt necesare începând cu WP Core 5.3+ și atunci când se folosește versiunea recomandată de PHP, care în prezent este PHP 7.2:

curl -- Efectuează operații de solicitare la distanță.
dom -- Folosit pentru validarea conținutului Widget-ului Text și pentru configurarea automată a IIS7+.
exif -- Lucrează cu metadate stocate în imagini.
fileinfo -- Folosit pentru detectarea tipului mime al fișierelor încărcate.
hash -- Folosit pentru hashing, inclusiv parole și pachete de actualizare.
json -- Folosit pentru comunicarea cu alte servere.
mbstring -- Folosit pentru gestionarea corectă a textului UTF8.
mysqli -- Se conectează la MySQL pentru interacțiuni cu baza de date.
libsodium -- Validează semnături și oferă bytes aleatorii în siguranță.
openssl -- Permite conexiuni bazate pe SSL la alte gazde.
pcre -- Crește performanța potrivirii modelelor în căutările de cod.
imagick -- Oferă o calitate mai bună a imaginilor pentru încărcările media. Consultați WP_Image_Editor is incoming! pentru detalii. Redimensionare mai inteligentă a imaginilor (pentru imagini mai mici) și suport pentru miniaturi PDF, atunci când Ghost Script este disponibil.
xml -- Folosit pentru analiza XML, cum ar fi de la un site terț.
zip -- Folosit pentru decomprimarea Plugin-urilor, Temelor și pachetelor de actualizare WordPress.

...dar recomandă și următoarele extensii opționale:

filter -- Folosit pentru filtrarea securizată a intrărilor utilizatorilor.
gd -- Dacă Imagick nu este instalat, Biblioteca Grafică GD este folosită ca o alternativă
funcțional limitată pentru manipularea imaginilor.
iconv -- Folosit pentru conversia între seturi de caractere.
mcrypt -- Generează bytes aleatorii atunci când libsodium și /dev/urandom nu sunt disponibile.
simplexml -- Folosit pentru analiza XML.
xmlreader -- Folosit pentru analiza XML.
zlib -- Compresie și decompresie Gzip.

Rețineți, totuși, că unele dintre aceste extensii necesare (sau opționale) sunt deja incluse în alte pachete PHP. De exemplu, dom este adesea inclus în extensia xml. Iar altele, cum ar fi fileinfo, sunt probabil deja instalate ca parte a unui așa-numit pachet php-common dacă utilizați Ubuntu, etc.

În plus, există câteva alte extensii, cum ar fi bcmath, care nu sunt oficial necesare sau recomandate de WordPress, dar sunt totuși folosite de multe plugin-uri populare, cum ar fi Yoast SEO.

Puteți urmări lista noastră de extensii PHP pentru WordPress pe LittleBizzy dacă sunteți interesat.

6 feb. 2020 14:40:48
1

ai nevoie de extensiile mysqli, pdo și gd. și uneori xml-rpc.

Rulez WP cu extensia nativă mysqlnd de ceva timp, este destul de mișto. Are funcționalități de reflectare integrate, așa că dacă vrei să vezi ce se întâmplă cu baza de date în acea cerere specifică, poți face asta.

zip ca extensie nu este necesar, majoritatea programelor apelează executabilul zip al sistemului.

13 feb. 2012 17:10:18
Comentarii

WP nu folosește stratul PDO. Probabil există plugin-uri care vă permit să faceți acest lucru, dar API-ul de bază de date al WP este încă din vremurile străvechi ale PHP...

onetrickpony onetrickpony
13 feb. 2012 20:36:58