Jakie rozszerzenia i biblioteki PHP potrzebują i / lub wykorzystują WP?

79

Kodeks luźno wspomina tylko o wersji PHP w wymaganiach serwera , jednak PHP można skonfigurować w całkiem szerokim zakresie wykluczania / włączania różnych części.

Jakie są rozszerzenia / biblioteki, które:

  1. są wymagane, aby WP w ogóle działało? MySQL ...
  2. są wymagane do określonych funkcji? GD? ...
  3. są preferowane dla najlepszego działania określonych funkcji? kędzior...
  4. są powszechnie używane przez wtyczki? Zamek błyskawiczny...
Rarst
źródło
Czy wiesz, że w Twojej witrynie występuje błąd SSL ( queryposts.com )?
Jestem najgłupszą osobą
@IamtheMostStupidPerson dziękuję, automatyczne odnawianie certyfikatu nie powiodło się z jakiegoś powodu, powinno zostać teraz naprawione.
Rarst
Bez obaw, Let's Encrypt. nie jest Myślałem, że odnowi się automatycznie ... Co zrobić, jeśli nie zostanie automatycznie odnowione w twoim przypadku?
Jestem najbardziej głupią osobą,
Wsparcie hostingowe @IamtheMostStupidPerson zresetowało go (zostało skonfigurowane poprzez ich integrację), zwykle odnawia się automatycznie dla mnie.
Rarst
Niezwykle trudne do znalezienia, ale istnieje oficjalna rekomendacja: make.wordpress.org/hosting/handbook/handbook/server-environment/…
aidanh010

Odpowiedzi:

90

Zastanowiłem się nad tym i biorąc pod uwagę rozmiar bazy kodu WP (w tym bibliotek dołączonych), ręczne tworzenie takiej listy (i powtarzanie jej dla każdej nowej wersji - meh) nie wydaje się zbyt realistyczne.

Poszukałem odpowiedniego narzędzia do analizy kodu statycznego - PHP_CompatInfo i po pewnym majsterkowaniu wygenerowałem następujący raport o rozszerzeniach używanych przez rdzeń (wersja przeskanowana 3.3.1):

  • cURL - 127 zastosowań (wymaga libcurl )

    • HTTP API (klasa WP_Http_curl)
    • url_is_accessable_via_ssl()
    • SimplePie (zastąpione klasą WP_SimplePie_File)
    • GoogleSpell (z pakietu TinyMCE, nie jest używany?)
  • Data / godzina - 367 zastosowań

  • DOM - 6 zastosowań (wymaga libxml )

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

  • Filtr - 2 zastosowania

    • klasa PHPMailer->ValidateAddress()(opcjonalnie)
  • FTP - 72 zastosowania

    • klasa ftp_base
    • klasa ftp( wersje czysta i gniazdowa )
    • klasa WP_Filesystem_FTPext
    • klasa WP_Filesystem_ftpsockets
  • Używa GD - 56

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

    • wp-includes\pluggable.phpwiele zastosowań (opcjonalnie - awaryjne wp-includes\compat.php)
  • iconv - 5 zastosowań

    • klasa SimplePie(opcjonalnie)
    • wp_check_invalid_utf8() (opcjonalny)
    • wp-mail.php (opcjonalny)
  • JSON - 20 zastosowań

    • opcjonalne, awarie w wp-includes/compat.php
  • libxml - 4 zastosowania

    • klasa WP_oEmbed->_parse_xml()(opcjonalnie)
    • SimplePie
  • Ciąg wielobajtowy - 29 zastosowań

    • jakiś powrót w wp-includes/compat.php
  • MySQL - 60 zastosowań

    • klasa wpdb
    • klasaSimplePie_Cache (zastąpiona przez klasę WP_Feed_Cache)
  • OpenSSL - 4 zastosowania

    • klasa PHPMailer
  • PCRE - 743 zastosowania

  • SimpleXML - 1 wykorzystuje

    • klasa WP_oEmbed(wydaje się opcjonalna)
  • Gniazda - 64 zastosowania

    • klasa ftp( socketsimplementacja)
  • SPL - 3 zastosowania

  • Tokenizer - 3 zastosowania

    • wp_doc_link_parse() (opcjonalny)
  • Parser XML - 89 zastosowań

  • XMLReader - 1 zastosowania

    • SimplePie (wydaje się opcjonalny)
  • Zlib - 30 zastosowań

Rarst
źródło
4
Świetny zasób. Na szczęście większość powyższych rozszerzeń i bibliotek jest teraz domyślnie kompilowana z PHP 5.2.4 i nowszymi.
Chris_O,
@Chris_O, o ile przestrzegane są ustawienia domyślne ... Zespół kilkakrotnie powiedział, że istnieją pewne dziwne konfiguracje PHP na wolności. To, co skłoniło mnie do tego pytania, to fakt, że VPS został zakupiony w pracy od nowego dostawcy hostingu i nieoczekiwanie miał bardzo minimalną konfigurację z brakiem niektórych typowych rozszerzeń. Bardziej wygodne byłoby zapewnienie pomocy z taką listą kontrolną rozszerzeń, a następnie odkrycie i poproszenie ich o zainstalowanie jeden po drugim.
Rarst
Której biblioteki używa się do rozpakowywania motywów i wtyczek?
jgraup
1
@jgraup ZipArchive lub PclZip patrz pokrewne funkcje rozpakowywania queryposts.com/?s=unzip_file
Rarst
1
W wersji 4.7 i nowej natywnej miniaturze / podglądzie PDF serwer wymaga obsługi Imagick, ImageMagick i Ghostscript.
j08691
26

Odpowiedź na to pytanie może być skomplikowana i bardzo długa, o ile wiem, będą też pewne różnice między serwerami a systemem operacyjnym (IIS, Apache) .. Nie mogę powiedzieć, że poniższa lista jest pełna, ale zawiera niektóre z tych, które znam, są wymagane:

  • Curl i CurlSSL - Nie jestem pewien, czy jest WYMAGANY, ale większość kodu WordPress go wykorzysta, jeśli jest dostępny. Wiele wtyczek jednak tego wymaga i / lub będzie mieć bez niego ograniczone funkcje.

  • Exif - pozwala programowi obsługi multimediów WordPressa pobierać dane Exif z obrazów.

  • Gettext - .po .mo obsługa internacjonalizacji lokalizacji tłumaczeń ..

  • FTP - służy do przeprowadzania aktualizacji wtyczek i WordPress przez FTP.

  • GD - Nie trzeba przedstawiać, prawda?

  • Iconv - konwersje zestawu znaków dla wszystkiego, od poczty do parsowania RSS.

  • Mbregex i Mbstring - nazwa jest dość opisowa - zapewniają funkcje używane wszędzie :-)

  • Mcrypt - Nie jest potrzebny do wordpressa, ale wiele wtyczek go potrzebuje.

  • Mime Magic - przestarzałe teraz w wordpress - ale nadal dobrze mieć kompatybilność wsteczną.

  • * MySQL i MySQL systemu * - wszyscy wiemy, co to jest i dlaczego jest potrzebne, nie?

  • Openssl - ta biblioteka służy do obsługi przetwarzania połączeń zaszyfrowanych certyfikatami SSL. WordPress może łączyć się z dowolną lokalizacją zaszyfrowaną SSL (https).

  • POSIX - służy do zapewnienia, że ​​WordPress odpowiednio zachowuje uprawnienia do plików i prawa własności.

  • Sprawdzanie informacji o ścieżce - niektóre ustawienia łącza bezpośredniego.

  • Pspell - możliwości sprawdzania pisowni w TinyMCE ,.

  • Gniazda - zarządzanie połączeniami FTP i obsługa poczty AKA SMTP i POP w WordPress.

  • Zip - Nie jestem pewien, czy WYMAGANE - ale ta klasa tworzenia i rozpakowywania plików zip kompatybilna z wieloma platformami BĘDZIE używana przez wordpress, jeśli jest dostępna.

  • Zlib - Używany w wielu przypadkach. przykład - kompresja plików js i css. ponownie, nie jestem pewien, czy WYMAGANE, ale potrzebne.

Jak stwierdzono powyżej - to nie jest PEŁNA lista - została skompilowana około roku temu - i może wymagać aktualizacji. Wiele z tych funkcji nie jest WYMAGANYCH, ale ZALECANYCH . W wielu przypadkach wordpress użyje funkcji JEŻELI jest dostępna, a jeśli nie, zignoruje to zadanie. Dobrym przykładem jest brak biblioteki GD, nie powstrzyma ona działania WordPressa, ale nie będzie przycinać, zmieniać rozmiaru ani modyfikować przesyłanych obrazów - pozostawiając w ten sposób oryginał (i zaznacz opcję „size” w „insert” obraz do opublikowania ”).

Na marginesie - powiedziałbym również, że może to pytanie prawdopodobnie uzyska więcej poprawnych / zaktualizowanych odpowiedzi na serverfault.com niż tutaj ...

krembo99
źródło
Dlaczego nie można tego znaleźć na stronie Wordpress?
Tadej
13

( To nie jest odpowiedź. Po prostu kilka przydatnych informacji. Jeśli uważasz, że te informacje nie są przydatne, daj mi znać, po prostu je usunę).

Myślę, że rozmawianie o pakietach byłoby łatwiejsze dla początkujących, ale ponieważ pakiety różnią się w zależności od systemu, ciężko jest je wszystkie pokryć.

Ponieważ mam doświadczenie z Debianem (i dystrybucjami opartymi na Debianie), chciałbym podzielić się tymi konkretnymi informacjami:

  • php5-cli
  • php5-dev
  • php5-fpm
  • php5-cgi
  • php5-mysql
  • php5-xmlrpc
  • php5-curl
  • php5-gd
  • php-apc (niewymagane, ale zalecane)
  • gruszka php
  • php5-imap
  • php5-mcrypt
  • php5-pspell

Wyżej wymienione pakiety instalują wszystkie rozszerzenia / biblioteki / moduły wymienione w innych odpowiedziach; wszystko oprócz Mime Magic, która nie jest już wymagana przez WordPress .

Innym dobrym sposobem, aby upewnić się, że Twój serwer jest w 100% zgodny z WordPress, jest sprawdzenie, z jakimi pakietami są wstępnie zainstalowane zarządzane firmy hostingowe . Ponieważ mają wieloletnie doświadczenie w skargach klientów na niezgodności, będą wiedzieć lepiej.

W przypadku Hostgatora moduły PHP, które wstępnie instalują obejmują (prawdopodobnie będziesz potrzebować tylko większość, ale nie wszystkie):

Moduły PHP wstępnie zainstalowane przez Hostgator

Media Temple udostępnia phpinfo();plik umożliwiający sprawdzenie ich konfiguracji. Jest także przydatny do celów porównawczych.

to ja
źródło
Po co WP potrzebuje php5-cli, php5-dev, (php5-fpm && php5-cgi), php5-gruszki, php5-imap i php5-pspell? Wydaje się, że twoim podejściem jest po prostu instalacja wszystkiego i jest to kiepskie. Podobnie jest z pomysłem, że powinieneś naśladować współdzielone środowiska hostingowe, jeśli masz kontrolę nad instalacją. Powinieneś także wybrać jeden ze sposobów uruchamiania PHP (FastCGI lub CGI), ale nie oba.
Poza wersją (php5) jest to w rzeczywistości najlepsza odpowiedź tutaj .. pytanie nie określa modułów „po co”, tylko „które”. Zagłosowano!
GerardJP
8

Jeśli chcesz w łatwy sposób sprawdzić, czy serwer spełnia te wymagania, możesz teraz skorzystać z przydatnej komendy ext WP-CLI .

wp ext requiredpokazuje wszystkie rozszerzenia PHP niezbędne do uruchomienia WordPress, a wp ext recommendedpokazuje opcjonalne . wp ext checkjest kombinacją obu poleceń.

Przydają się one, gdy potrzebujesz szybkiego sposobu sprawdzenia wymagań systemowych na nowym serwerze i / lub jeśli chcesz dalej programowo przetwarzać tę listę.

Oto jak wp ext requireddziała:

$ 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
szwajcarski
źródło
7

Opracowałem moduł sprawdzania środowiska WordPress. Jest to prosta klasa, działająca na sieci SAPI lub CLI. To jest utrzymywana wersja 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 <[email protected]>
 */

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 ) );
    }
}

Na podstawie pracy @rarst

Szépe Viktor
źródło
3

Jeśli używasz Debian 7 (Debian Wheezy), musisz zainstalować sam PHP i niewielką liczbę rozszerzeń. Większość tego, o czym wspomniał @Rarst, jest już zawarta w jednej z najbardziej podstawowych instalacji PHP Debiana.

PHP

Masz cztery opcje w Debian Wheezy: libapache2-mod-php5 , libapache2-mod-php5filter , php5-cgi lub php5-fpm . Wybieram php5-fpm, ale wszystko zależy od tego, jak chcesz, aby twój serwer WWW i PHP współdziałały.

MySQL

Potrzebujesz także PHP, aby korzystać z MySQL. Dostępne opcje to php5-mysql i php5-mysqlnd . php5-mysqlnd jest natywny i ogólnie szybszy. Niektórzy mogą wybrać alternatywę, taką jak MariaDB.

Biblioteka grafiki Opcjonalnie

Jeśli chcesz zmienić rozmiar zdjęć, możesz zainstalować php5-gd lub php5-imagick . php5-imagick zapewni lepszą jakość, a Wordpress użyje go, jeśli będzie dostępny. Jeśli oba są zainstalowane, zostanie użyty php5-imagick. Jeśli żaden z nich nie zostanie zainstalowany, rozmiar obrazów nie zostanie zmieniony (a Wordpress nie będzie narzekał).

HTTP Opcjonalne

Jeśli zainstalujesz php5-curl , zostanie on użyty, ale nie jest wymagany do niczego poza chyba lepszą wydajnością.


Wordpress i większość rozszerzeń nie wymaga niczego innego, chociaż niektóre rozszerzenia mogą mieć inne wymagania.

Oto kompletna podstawowa linia instalacyjna zapewniająca Wordpressowi wszystko, czego potrzebuje do optymalnej wydajności, i nic, czego nie robi:

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

źródło
2

Warto wspomnieć, że od WordPress 5.2 istnieje wbudowana funkcja, która zgłasza brakujące moduły. Znajdź go w Narzędzia> Zdrowie witryny.

Wysoce nieregularne
źródło
1

Mały „ściągawka” podczas instalowania PHP dla Wordpress na Debianie:

0. Dodaj repozytorium dotdeb

Dodaj te dwa wiersze do /etc/apt/sources.listpliku:

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

Dodaj klucz GPG:

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

Zaktualizuj „listę pakietów”:

sudo apt-get update

1. Zainstaluj PHP 7:

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

Źródło: http://php.net/manual/en/install.unix.debian.php

2. Lista modułów zawartych w pakiecie „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

Źródło: https://packages.debian.org/sid/amd64/php7.0-common/filelist

3. Aby zainstalować dodatkowe moduły wymagane / zalecane przez wordpress:

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

Źródło: https://wordpress.stackexchange.com/a/42141/107878

4. Nie mogłem znaleźć na Debianie:

Openssl
Path Info Check
Zlib

5. Zwraca „apt-cache search php7”:

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

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

Tadej
źródło
1

WordPress poradnik teraz listę zalecanych modułów PHP:

Rdzeń WordPress korzysta z rozszerzeń PHP. Jeśli brakuje preferowanego rozszerzenia, WordPress będzie musiał wykonać więcej pracy, aby wykonać zadanie, które pomaga moduł lub, w najgorszym przypadku, usunąć funkcjonalność. Dlatego zalecane są wymienione poniżej rozszerzenia PHP.

  • bcmath - Używany w celu poprawy wydajności obliczeń matematycznych.
  • curl - Wykonuje operacje zdalnego żądania.
  • exif - Działa z metadanymi przechowywanymi w obrazach.
  • filtr - służy do bezpiecznego filtrowania danych wejściowych użytkownika.
  • fileinfo - Służy do wykrywania typu mime przesyłanych plików
  • mod_xml - Używany do generowania XML, na przykład dla mapy witryny XML. Zauważ, że mod_xml jest modułem Apache, a nie rozszerzeniem PHP, ale znajduje się na liście ze względu na świadomość.
  • mysqli - łączy się z MySQL w celu interakcji z bazą danych.
  • libsodium - Generuje losowe bajty.
  • openssl - Zezwala na połączenia SSL z innymi hostami.
  • pcre - Zwiększa wydajność dopasowywania wzorców podczas wyszukiwania kodu.
  • imagick - Zapewnia lepszą jakość obrazu podczas przesyłania mediów. Zobacz WP_Image_Editor nadchodzi! dla szczegółów. Bardziej inteligentne zmiany rozmiaru obrazu (w przypadku mniejszych obrazów) i obsługa miniatur PDF, gdy Ghost Script jest również dostępny.
  • xml - Używany do analizowania XML, na przykład z witryny innej firmy.

Wymienia również następujące rozszerzenia PHP jako opcjonalne:

  • gd - Jeśli Imagick nie jest zainstalowany, biblioteka graficzna GD jest używana jako funkcjonalnie ograniczony system zastępczy do manipulacji obrazami.
  • mcrypt - Generuje losowe bajty, gdy libsodium nie jest dostępne.
  • xmlreader - Używany do parsowania XML.
  • zlib - Kompresja i dekompresja Gzip.
TEKFused
źródło
Huh, zastanawiam się, co mod_xmlma z tym wspólnego, ponieważ rdzeń ani nie implementuje map witryn XML, ani nie jest powiązany z działaniem na określonym serwerze WWW.
Rarst
0

potrzebujesz rozszerzeń mysqli, pdo i gd. a czasem xml-rpc.

Od jakiegoś czasu korzystam z WP z natywnym rozszerzeniem mysqlnd, jest całkiem fajnie. Ma wbudowane elementy odbicia, więc jeśli chcesz zobaczyć, co się dzieje z bazą danych w tym konkretnym żądaniu, możesz to zrobić.

zip, ponieważ rozszerzenie nie jest potrzebne, większość programów nazywa systemowy plik wykonywalny zip.

Vid Luther
źródło
2
WP nie używa warstwy PDO. Prawdopodobnie istnieją wtyczki, które to umożliwiają, ale interfejs API bazy danych WP wciąż pochodzi z czasów starożytnych PHP ...
onetrickpony