Welche PHP-Erweiterungen und -Bibliotheken werden von WP benötigt und / oder verwendet?

79

Codex erwähnt die PHP-Version nur lose in den Server-Anforderungen , PHP kann jedoch in einem weiten Bereich von Ausschluss / Einschluss verschiedener Teile konfiguriert werden.

Was sind Erweiterungen / Bibliotheken, die:

  1. sind erforderlich, damit WP überhaupt funktioniert? MySQL ...
  2. werden für bestimmte Funktionen benötigt? GD? ...
  3. werden für die bestmögliche Bedienung bestimmter Funktionen bevorzugt? CURL ...
  4. werden häufig von Plugins verwendet? Postleitzahl...
Rarst
quelle
Ist Ihnen bekannt, dass auf Ihrer Website ein SSL-Fehler vorliegt ( queryposts.com )?
Ich bin die dümmste Person
@IamtheMostStupidPerson danke, die automatische Zertifikatserneuerung war dort aus irgendeinem Grund fehlgeschlagen, sollte jetzt behoben werden.
Rarst
Keine Sorge, es ist Let's Encrypt. ist nicht? Ich dachte, es wird automatisch erneuert ... Was können wir tun, wenn es nicht wie in Ihrem Fall automatisch erneuert wird?
Ich bin die
@IamtheMostStupidPerson Hosting-Support hatte es zurückgesetzt (es wurde durch ihre Integration eingerichtet), es verlängert sich normalerweise automatisch für mich.
Rarst
Sehr schwer zu finden, aber es gibt eine offizielle Empfehlung: make.wordpress.org/hosting/handbook/handbook/server-environment/…
aidanh010

Antworten:

90

Ich habe darüber nachgedacht und die Größe der WP-Codebasis (einschließlich der gebündelten Bibliotheken) angegeben. Es erscheint nicht sehr realistisch, eine solche Liste von Hand zu kompilieren (und sie für jede neue Version zu wiederholen - meh).

Ich suchte nach einem geeigneten statischen Code-Analysetool - PHP_CompatInfo - und erstellte nach einigem Basteln den folgenden Bericht über die von Core verwendeten Erweiterungen (Version 3.3.1 gescannt):

  • cURL - 127 benutzt (erfordert libcurl )

    • HTTP API (Klasse WP_Http_curl)
    • url_is_accessable_via_ssl()
    • SimplePie (mit Klasse überschrieben WP_SimplePie_File)
    • GoogleSpell (aus TinyMCE-Paket, wird nicht verwendet?)
  • Datum / Uhrzeit - 367 Verwendungen

  • DOM - 6 benutzt (erfordert libxml )

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

  • Filter - 2 verwendet

    • Klasse PHPMailer->ValidateAddress()(optional)
  • FTP - 72 verwendet

    • Klasse ftp_base
    • Klasse ftp( Pure- und Sockets- Versionen)
    • Klasse WP_Filesystem_FTPext
    • Klasse WP_Filesystem_ftpsockets
  • GD - 56 verwendet

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

    • wp-includes\pluggable.phpMehrfachnutzung (optional - Fallback in wp-includes\compat.php)
  • iconv - 5 verwendet

    • Klasse SimplePie(optional)
    • wp_check_invalid_utf8() (Optional)
    • wp-mail.php (Optional)
  • JSON - 20 verwendet

    • optional, Fallbacks in wp-includes/compat.php
  • libxml - 4 verwendet

    • Klasse WP_oEmbed->_parse_xml()(optional)
    • SimplePie
  • Multibyte String - 29 verwendet

    • einige Fallback in wp-includes/compat.php
  • MySQL - 60 verwendet

    • Klasse wpdb
    • classSimplePie_Cache (mit class überschrieben WP_Feed_Cache)
  • OpenSSL - 4 verwendet

    • Klasse PHPMailer
  • PCRE- 743 verwendet

  • SimpleXML - 1 verwendet

    • Klasse WP_oEmbed(scheint optional zu sein)
  • Sockets - 64 verwendet

    • Klasse ftp( socketsImplementierung)
  • SPL - 3 verwendet

  • Tokenizer - 3 verwendet

    • wp_doc_link_parse() (Optional)
  • XML Parser - 89 verwendet

  • XMLReader - 1 verwendet

    • SimplePie (scheint optional zu sein)
  • Zlib - 30 verwendet

Rarst
quelle
4
Großartige Ressource. Glücklicherweise sind die meisten der oben genannten Erweiterungen und Bibliotheken jetzt standardmäßig mit PHP 5.2.4 und höher kompiliert.
Chris_O
@Chris_O solange die Vorgabe eingehalten wird ... Es wurde mehrmals vom Kernteam behauptet, dass es einige seltsame PHP-Konfigurationen gibt. Was mich zu dieser Frage veranlasste, war, dass VPS bei der Arbeit von einem neuen Hosting-Anbieter gekauft wurde und unerwartet nur eine sehr minimale Konfiguration aufwies, wobei einige typische Erweiterungen fehlten. Es ist bequemer, eine solche Checkliste mit Erweiterungen zur Verfügung zu stellen, diese dann zu ermitteln und nacheinander zu installieren.
Rarst
Mit welcher Bibliothek werden Themes und Plugins entpackt?
JGRAUP
1
@jgraup ZipArchive oder PclZip siehe zugehörige Entpackungsfunktionen queryposts.com/?s=unzip_file
Rarst
1
Mit v4.7 und der neuen nativen PDF-Vorschau benötigt Ihr Server Unterstützung für Imagick, ImageMagick und Ghostscript.
j08691
26

Die Antwort darauf könnte kompliziert und sehr lang sein, soweit ich weiß, wird es auch einige Unterschiede zwischen Servern und Betriebssystemen (IIS, Apache) geben. Ich kann nicht sagen, dass die folgende Liste eine VOLLSTÄNDIGE Liste ist, aber sie enthält Einige von denen, die ich kenne, sind erforderlich:

  • Locken und CurlSSL - Nicht sicher , es ist ERFORDERLICH aber aber viel von dem Wordpress - Code wird es verwenden , wenn es verfügbar ist. Viele Plugins benötigen es jedoch und / oder werden ohne es eingeschränkte Funktionen haben.

  • Exif - Ermöglicht dem Media Handler von WordPress, Exif-Daten aus Bildern zu ziehen.

  • Gettext - .po .mo Übersetzungslokalisierung Internationalisierung

  • FTP - wird verwendet, um Plugins und WordPress-Upgrades über FTP durchzuführen.

  • GD - Keine Einführung nötig, oder?

  • Iconv - Zeichensatzkonvertierungen für alles von Mail bis RSS-Parsing.

  • Mbregex und Mbstring - der Name ist ziemlich beschreibend - bieten Funktionen, die überall verwendet werden :-)

  • Mcrypt - Wird für WordPress nicht benötigt, wird aber von vielen Plugins benötigt.

  • Mime Magic - jetzt in WordPress veraltet - aber immer noch gut für die Rückenverträglichkeit zu haben.

  • * MySQL und MySQL des Systems * - wir alle wissen, was das ist und warum es benötigt wird, nein?

  • Openssl - Diese Bibliothek wird verwendet, um mit SSL-Zertifikaten verschlüsselte Verbindungen zu verarbeiten, damit WordPress möglicherweise eine Verbindung zu einem beliebigen SSL (https) -verschlüsselten Speicherort herstellen kann.

  • POSIX - wird verwendet, um sicherzustellen, dass WordPress Dateiberechtigungen und -eigner ordnungsgemäß verwaltet.

  • Path Info Check - einige Einstellungen für Permalinks.

  • Pspell - Rechtschreibprüfungsfunktionen für TinyMCE,.

  • Sockets - Verwalten von FTP-Verbindungen und E-Mail-Verarbeitung von AKA SMTP und POP in WordPress.

  • Zip - Nicht sicher, ob erforderlich - aber diese plattformübergreifende Klasse zum Erstellen und Extrahieren von Zip-Dateien wird von WordPress verwendet, sofern verfügbar.

  • Zlib - In vielen Fällen verwendet. Beispiel - Js und CSS-Dateien Komprimierung. wenn auch hier nicht sicher ERFORDERLICH aber notwendig.

Wie oben erwähnt - dies ist keineswegs eine vollständige Liste - Es wurde vor etwa einem Jahr erstellt - und es könnte ein Update erforderlich sein. Viele dieser Funktionen sind nicht unbedingt ERFORDERLICH, sondern EMPFOHLEN . In vielen Fällen verwendet WordPress eine Funktion, WENN diese verfügbar ist, und wenn nicht, ignoriert WordPress die Aufgabe. Ein gutes Beispiel ist das Fehlen einer GD-Bibliothek, die WordPress nicht anhält, aber die hochgeladenen Bilder nicht zuschneidet, in der Größe ändert oder verändert - so bleibt das Original erhalten (und die Option "Größe" in "Einfügen" wird ausgegraut image to post "-Funktion) ..

Als Randnotiz - ich würde auch sagen, dass diese Frage auf serverfault.com wahrscheinlich korrektere / aktuellere Antworten erhält als hier ...

krembo99
quelle
Warum ist dies kein Ort auf der Wordpress-Website zu finden?
Tadej
13

( Dies ist keine Antwort. Nur ein paar nützliche Informationen. Wenn Sie der Meinung sind, dass diese Informationen nicht nützlich sind, lassen Sie es mich wissen, ich werde sie einfach löschen.)

Ich denke, in Bezug auf Pakete zu sprechen, wäre für Neulinge einfacher, aber da Pakete von System zu System variieren, ist es schwierig, alle abzudecken.

Da ich Erfahrung mit Debian (und Debian-basierten Distributionen) habe, möchte ich diese spezifischen Informationen weitergeben:

  • php5-cli
  • php5-dev
  • php5-fpm
  • php5-cgi
  • PHP5-MySQL
  • php5-xmlrpc
  • PHP5-Curl
  • php5-gd
  • php-apc (nicht erforderlich, aber empfohlen)
  • PHP-Birne
  • php5-imap
  • php5-mcrypt
  • php5-pspell

Mit den oben genannten Paketen werden alle in den anderen Antworten genannten Erweiterungen / Bibliotheken / Module installiert. Alles außer Mime Magic, das von WordPress nicht mehr benötigt wird .

Eine andere gute Möglichkeit, um sicherzustellen, dass Ihr Server zu 100% mit WordPress kompatibel ist, besteht darin, zu überprüfen, mit welchen Paketen die verwalteten Hosting-Unternehmen vorinstalliert sind. Da sie jahrelange Erfahrung mit Kundenbeschwerden über Inkompatibilitäten haben, wissen sie es besser.

Im Falle von Hostgator enthalten die vorinstallierten PHP-Module (wahrscheinlich benötigen Sie nur die meisten, aber nicht alle):

Von Hostgator vorinstallierte PHP-Module

Media Temple stellt eine phpinfo();Datei zur Verfügung, mit der Sie die Konfiguration überprüfen können. Es ist auch zu Vergleichszwecken nützlich.

da ich bin
quelle
Wofür benötigt WP Php5-Cli, Php5-Dev, (Php5-Fpm & & & Php5-CGI), Php5-Pear, Php5-Imap und Php5-Pspell? Ihr Ansatz scheint zu sein, einfach alles zu installieren und es ist ein schlechter. Da ist die Idee, dass Sie Shared Hosting-Umgebungen imitieren sollten, wenn Sie die Kontrolle über Ihre Installation haben. Sie sollten auch einen Weg wählen, um PHP auszuführen (FastCGI oder CGI), aber nicht beide.
Neben der Version (php5) ist dies hier eigentlich die beste Antwort. Die Frage gibt nicht an, wofür, sondern nur welche Module. Gewählt!
GerardJP
8

Wenn Sie auf einfache Weise überprüfen möchten, ob Ihr Server diese Anforderungen erfüllt, gibt es jetzt einen praktischen WP-CLI ext-Befehl .

wp ext requiredzeigt alle PHP - Erweiterungen notwendig Wordpress zu laufen, während wp ext recommendedzeigt optional diejenigen. wp ext checkist eine Kombination aus beiden Befehlen.

Diese sind nützlich, wenn Sie schnell die Systemanforderungen auf einem neuen Server überprüfen und / oder diese Liste programmgesteuert weiterverarbeiten möchten.

So wp ext requiredfunktioniert 's :

$ 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
swissspidy
quelle
7

Ich habe meinen WordPress-Umgebungstester entwickelt. Es ist eine einfache Klasse, die auf Web-SAPI oder CLI ausgeführt wird. Dies ist die gepflegte Version 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 ) );
    }
}

Basierend auf der Arbeit von @rarst

Szépe Viktor
quelle
3

Wenn Sie Debian 7 (Debian Wheezy) verwenden, müssen Sie PHP selbst und eine kleine Anzahl von Erweiterungen installieren. Das meiste, was von @Rarst erwähnt wurde, ist bereits in einer der grundlegendsten PHP-Installationen von Debian enthalten.

PHP

Sie haben in Debian Wheezy vier Möglichkeiten: libapache2-mod-php5 , libapache2-mod-php5filter , php5-cgi oder php5-fpm . Ich wähle php5-fpm, aber es hängt alles davon ab, wie Ihr Webserver und PHP interagieren sollen.

MySQL

Sie benötigen auch PHP, um MySQL zu verwenden. Ihre Optionen sind php5-mysql und php5-mysqlnd . php5-mysqlnd ist nativ und im Allgemeinen schneller. Einige könnten eine Alternative wie MariaDB wählen.

Grafikbibliothek Optional

Wenn Sie möchten, dass die Größe Ihrer Bilder geändert wird, können Sie entweder php5-gd oder php5-imagick installieren . php5-imagick bietet Ihnen eine bessere Qualität und Wordpress verwendet es, wenn es verfügbar ist. Wenn beide installiert sind, wird php5-imagick verwendet. Wenn beides nicht installiert ist, wird die Größe der Bilder nicht geändert (und Wordpress beschwert sich nicht).

HTTP Optional

Wenn Sie php5-curl installieren , wird es verwendet, ist aber nur für eine bessere Leistung erforderlich.


Für Wordpress und die meisten Erweiterungen ist nichts anderes erforderlich, obwohl für einige Erweiterungen möglicherweise andere Anforderungen gelten.

Hier ist die komplette Basis-Installationslinie, die Wordpress alles bietet, was es für eine optimale Leistung benötigt, und nichts, was es nicht tut:

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

quelle
2

Es ist erwähnenswert, dass es seit WordPress 5.2 eine integrierte Funktion gibt, die über fehlende Module berichtet. Sie finden es unter Tools> Site Health.

Sehr unregelmäßig
quelle
1

Ein kleines "Cheatsheet" bei der Installation von PHP für Wordpress unter Debian:

0. Fügen Sie das DotDeb-Repository hinzu

Fügen Sie Ihrer /etc/apt/sources.listDatei diese beiden Zeilen hinzu :

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

Fügen Sie den GPG-Schlüssel hinzu:

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

Aktualisieren Sie die "Paketliste":

sudo apt-get update

1. Installieren Sie PHP 7:

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

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

2. Liste der Module, die im Paket "php7.0-common" enthalten sind:

/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

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

3. So installieren Sie die zusätzlichen Module, die von WordPress benötigt / empfohlen werden:

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

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

4. Ich konnte folgendes auf debian nicht finden:

Openssl
Path Info Check
Zlib

5. "apt-cache search php7" gibt zurück:

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

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

Tadej
quelle
1

Das WordPress-Handbuch listet nun die empfohlenen PHP-Module auf:

WordPress Core nutzt PHP-Erweiterungen. Wenn die bevorzugte Erweiterung fehlt, muss WordPress entweder mehr Arbeit leisten, um die Aufgabe zu erledigen, bei der das Modul hilft, oder im schlimmsten Fall wird es die Funktionalität entfernen. Daher werden die unten aufgeführten PHP-Erweiterungen empfohlen.

  • bcmath - Wird verwendet, um die Leistung von mathematischen Berechnungen zu verbessern.
  • curl - Führt Remote-Anforderungsvorgänge aus.
  • exif - Arbeitet mit Metadaten, die in Bildern gespeichert sind.
  • filter - Wird zum sicheren Filtern von Benutzereingaben verwendet.
  • fileinfo - Dient zum Erkennen des Mimetyps von Dateiuploads
  • mod_xml - Wird zum Generieren von XML verwendet, z. B. für eine XML-Sitemap. Beachten Sie, dass mod_xml ein Apache-Modul ist, keine PHP-Erweiterung, sondern zur Information aufgeführt wird.
  • mysqli - Stellt eine Verbindung zu MySQL für Datenbankinteraktionen her.
  • libsodium - Erzeugt zufällige Bytes.
  • openssl - Erlaubt SSL-basierte Verbindungen zu anderen Hosts.
  • pcre - Erhöht die Leistung des Mustervergleichs bei der Codesuche.
  • imagick - Bietet eine bessere Bildqualität für das Hochladen von Medien. Siehe WP_Image_Editor kommt! für Details. Intelligentere Bildgrößenänderung (für kleinere Bilder) und Unterstützung für PDF-Miniaturansichten, wenn Ghost Script ebenfalls verfügbar ist.
  • xml - Wird für XML-Parsing verwendet, z. B. von einer Site eines Drittanbieters.

Außerdem werden die folgenden PHP-Erweiterungen als optional aufgeführt:

  • gd - Wenn Imagick nicht installiert ist, wird die GD-Grafikbibliothek als funktionell eingeschränkter Fallback für die Bildbearbeitung verwendet.
  • mcrypt - Erzeugt zufällige Bytes, wenn libsodium nicht verfügbar ist.
  • xmlreader - Wird für das XML-Parsing verwendet.
  • zlib - Gzip-Komprimierung und -Dekomprimierung.
TEKFused
quelle
Ich frage mich, was mod_xmlmit irgendetwas zu tun hat, da core weder XML-Sitemaps implementiert noch an die Ausführung auf einem bestimmten Webserver gebunden ist.
Rarst
0

Sie benötigen die Erweiterungen mysqli, pdo und gd. und manchmal xml-rpc.

Ich habe WP mit der nativen mysqlnd-Erweiterung für eine Weile ausgeführt, es ist ziemlich ordentlich. Wenn Sie also sehen möchten, was mit der Datenbank in dieser bestimmten Anfrage los ist, können Sie dies tun.

zip als erweiterung wird nicht benötigt, die meisten programme nennen das system zip ausführbar.

Vid Luther
quelle
2
WP verwendet die PDO-Schicht nicht. Es gibt wahrscheinlich Plugins, mit denen Sie dies tun können, aber die Datenbank-API von WP stammt noch aus der Antike von PHP ...
onetrickpony