Apa ekstensi dan perpustakaan PHP yang dibutuhkan dan / atau digunakan WP?

79

Codex secara longgar hanya menyebutkan versi PHP dalam persyaratan server , namun PHP dapat dikonfigurasikan dalam kisaran yang cukup luas untuk mengecualikan / memasukkan bagian yang berbeda.

Apa ekstensi / perpustakaan itu:

  1. Apakah WP harus bekerja? MySQL ...
  2. diperlukan untuk fungsi tertentu? GD? ...
  3. lebih disukai untuk operasi terbaik dari fungsi tertentu? ikal...
  4. yang biasa digunakan oleh plugin? Zip...
Jarang
sumber
Apakah Anda tahu ada kesalahan SSL di situs Anda ( queryposts.com )?
Saya Orang yang Paling Bodoh
@IamtheMostStupidPerson terima kasih, pembaruan sertifikat otomatis gagal di sana karena beberapa alasan, harus diperbaiki sekarang.
Rarst
Jangan khawatir, Ini Mari Mengenkripsi. bukan? Saya pikir itu secara otomatis memperbaharui ... Jika seandainya itu tidak secara otomatis diperpanjang sebagai kasus Anda, apa yang dapat kami lakukan?
Saya Orang yang Paling Bodoh
@IamtheMostStupidPerson dukungan hosting telah mengatur ulang (itu diatur melalui integrasi mereka), itu biasanya diperpanjang secara otomatis untuk saya.
Jarang
Sangat sulit ditemukan, tetapi ada rekomendasi resmi: make.wordpress.org/hosting/handbook/handbook/server-environment/…
aidanh010

Jawaban:

90

Saya memberikan ini lebih banyak pemikiran dan diberikan ukuran basis kode WP (termasuk perpustakaan dibundel) tampaknya tidak realistis untuk menyusun daftar tersebut dengan tangan (dan ulangi untuk setiap versi baru - meh).

Saya mencari alat analisis kode statis yang sesuai - PHP_CompatInfo dan setelah beberapa bermain-main dihasilkan laporan ekstensi yang digunakan oleh core (versi dipindai 3.3.1):

  • cURL - 127 penggunaan (membutuhkan libcurl )

    • API HTTP (kelas WP_Http_curl)
    • url_is_accessable_via_ssl()
    • SimplePie (diganti dengan kelas WP_SimplePie_File)
    • GoogleSpell (dari paket TinyMCE, tidak digunakan?)
  • Tanggal / Waktu - 367 penggunaan

  • Penggunaan DOM - 6 (membutuhkan libxml )

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

  • Filter - 2 penggunaan

    • kelas PHPMailer->ValidateAddress()(opsional)
  • FTP - 72 menggunakan

    • kelas ftp_base
    • kelas ftp( versi murni dan soket )
    • kelas WP_Filesystem_FTPext
    • kelas WP_Filesystem_ftpsockets
  • GD - 56 menggunakan

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

    • wp-includes\pluggable.phpbanyak kegunaan (opsional - fallback in wp-includes\compat.php)
  • iconv - 5 menggunakan

    • kelas SimplePie(opsional)
    • wp_check_invalid_utf8() (pilihan)
    • wp-mail.php (pilihan)
  • JSON - 20 menggunakan

    • opsional, fallback di wp-includes/compat.php
  • libxml - 4 menggunakan

    • kelas WP_oEmbed->_parse_xml()(opsional)
    • SimplePie
  • String Multibyte - 29 menggunakan

    • beberapa fallback di wp-includes/compat.php
  • MySQL - 60 menggunakan

    • kelas wpdb
    • kelasSimplePie_Cache (ditimpa dengan kelas WP_Feed_Cache)
  • OpenSSL - 4 menggunakan

    • kelas PHPMailer
  • PCRE - 743 menggunakan

  • SimpleXML - 1 menggunakan

    • kelas WP_oEmbed(tampaknya opsional)
  • Soket - 64 penggunaan

    • kelas ftp( socketsimplementasi)
  • SPL - 3 menggunakan

  • Tokenizer - 3 penggunaan

    • wp_doc_link_parse() (pilihan)
  • Parser XML - 89 menggunakan

  • XMLReader - 1 menggunakan

    • SimplePie (tampaknya opsional)
  • Zlib - 30 menggunakan

Jarang
sumber
4
Sumber daya yang bagus. Untungnya sebagian besar ekstensi dan pustaka di atas sekarang dikompilasi secara default dengan PHP 5.2.4 dan di atasnya.
Chris_O
@ Chris_O selama standar diikuti ... Sudah dikatakan beberapa kali oleh tim inti bahwa ada beberapa konfigurasi PHP weeeeird di luar sana di alam liar. Apa yang mendorong pertanyaan ini dari saya adalah bahwa VPS dibeli di tempat kerja dari penyedia hosting baru dan tanpa diduga itu memiliki konfigurasi yang sangat minim dengan beberapa ekstensi tipikal hilang. Akan lebih mudah untuk memberikan dukungan dengan daftar periksa ekstensi tersebut, kemudian menemukan dan meminta mereka untuk diinstal satu per satu.
Pertama
Lib mana yang digunakan untuk unzip tema dan plugin?
jgraup
1
@jgraup ZipArchive atau PclZip lihat fungsi unzip terkait queryposts.com/?s=unzip_file
Rarst
1
Dengan v4.7 dan thumbnail / asli PDF asli yang baru, server Anda memerlukan dukungan Imagick, ImageMagick, dan Ghostscript.
j08691
26

Jawaban untuk ini mungkin rumit dan sangat panjang, sejauh yang saya tahu, juga akan ada beberapa perbedaan antara server & OS (IIS, Apache) .. Saya tidak bisa mengatakan bahwa daftar berikut ini adalah daftar LENGKAP, tetapi itu termasuk beberapa dari mereka yang saya tahu diharuskan:

  • Curl dan CurlSSL - Tidak yakin itu DIBUTUHKAN tetapi tetapi sebagian besar kode WordPress akan menggunakannya jika tersedia. Namun banyak plugin DO memerlukannya dan / atau akan memiliki fungsi terbatas tanpanya.

  • Exif - memungkinkan media handler WordPress untuk menarik data Exif dari gambar.

  • Gettext - .po .mo menangani internasionalisasi terjemahan lokalisasi ..

  • FTP - digunakan untuk melakukan peningkatan plugin dan WordPress melalui FTP.

  • GD - Tidak perlu pengenalan, kan?

  • Iconv - karakter mengatur konversi untuk semuanya mulai dari email hingga penguraian RSS.

  • Mbregex dan Mbstring - namanya cukup deskriptif - menyediakan fungsi yang digunakan di semua tempat :-)

  • Mcrypt - Tidak diperlukan untuk wordpress, tetapi banyak plugin yang membutuhkannya.

  • Mime Magic - Sudah tidak digunakan lagi di wordpress - tetapi masih bagus untuk kompatibilitasnya.

  • * Mysql dan Mysql dari sistem * - kita semua tahu apa ini dan mengapa itu diperlukan, bukan?

  • Openssl - Pustaka ini digunakan untuk menangani pemrosesan koneksi yang dienkripsi dengan sertifikat SSL untuk WordPress agar dapat terhubung ke lokasi terenkripsi SSL (https) apa pun.

  • POSIX - digunakan untuk memastikan bahwa WordPress menjaga izin dan kepemilikan file dengan benar.

  • Path Info Check - beberapa pengaturan permalink.

  • Pspell - kemampuan pemeriksaan ejaan ke TinyMCE,.

  • Soket - mengelola koneksi FTP dan penanganan surat AKA SMTP dan POP di WordPress.

  • Zip - Tidak yakin jika DIBUTUHKAN - tetapi kelas pembuatan file zip dan ekstraksi yang kompatibel lintas platform ini AKAN digunakan oleh wordpress jika tersedia.

  • Zlib - Digunakan dalam banyak kasus. contoh - kompresi file js dan css. lagi, tidak yakin jika DIBUTUHKAN tetapi dibutuhkan.

Seperti yang dinyatakan di atas - ini bukan daftar LENGKAP - Itu dikompilasi sekitar setahun yang lalu - dan mungkin perlu beberapa pembaruan. Banyak dari fungsi-fungsi itu tidak benar-benar DIBUTUHKAN tetapi DIUNGKAPKAN . Dalam banyak kasus, wordpress akan menggunakan fungsi JIKA tersedia, dan jika tidak, akan mengabaikan tugas. Contoh yang baik adalah kurangnya pustaka GD, itu tidak akan menghentikan wordpress dari berfungsi, tetapi itu tidak akan memotong, mengubah ukuran, atau mengubah gambar yang diunggah - sehingga meninggalkan yang asli (dan menghapuskan opsi "size" di "insert" image to post "function) ..

Sebagai catatan - saya juga akan mengatakan bahwa mungkin pertanyaan ini mungkin akan mendapatkan jawaban yang lebih benar / diperbarui di serverfault.com daripada di sini ...

krembo99
sumber
Mengapa ini tidak ditemukan di situs web Wordpress?
Tadej
13

( Ini tidak dimaksudkan sebagai jawaban. Hanya beberapa informasi yang berguna. Jika menurut Anda info ini tidak berguna, beri tahu saya, saya akan menghapusnya.)

Saya pikir berbicara dalam hal paket akan lebih mudah bagi pemula, tetapi karena paket bervariasi dari satu sistem ke sistem, sulit untuk mencakup semuanya.

Karena saya memiliki pengalaman dengan Debian (& distro berbasis Debian), saya ingin berbagi informasi spesifik ini:

  • php5-cli
  • php5-dev
  • php5-fpm
  • php5-cgi
  • php5-mysql
  • php5-xmlrpc
  • php5-curl
  • php5-gd
  • php-apc (tidak wajib, tetapi disarankan)
  • php-pear
  • php5-imap
  • php5-mcrypt
  • php5-pspell

Paket-paket tersebut menginstal semua ekstensi / perpustakaan / modul yang disebutkan dalam jawaban lain; semua, kecuali Mime Magic, yang tidak lagi diperlukan oleh WordPress .

Cara lain yang baik untuk memastikan server Anda 100% kompatibel dengan WordPress adalah untuk memeriksa paket apa yang sudah diinstal dengan perusahaan hosting yang dikelola . Karena mereka memiliki pengalaman bertahun-tahun dengan keluhan pelanggan tentang ketidakcocokan, mereka akan lebih tahu.

Dalam hal Hostgator , modul-modul PHP yang telah mereka instal sebelumnya menyertakan (Anda mungkin hanya membutuhkan sebagian besar tetapi tidak semuanya):

Modul PHP sudah diinstal sebelumnya oleh Hostgator

Media Temple menyediakan phpinfo();file bagi Anda untuk memeriksa konfigurasi mereka. Ini berguna untuk tujuan perbandingan juga.

ini aku
sumber
Untuk apa WP membutuhkan php5-cli, php5-dev, (php5-fpm && php5-cgi), php5-pear, php5-imap, dan php5-pspell for? Pendekatan Anda tampaknya hanya menginstal semuanya dan itu miskin. Seperti gagasan bahwa Anda harus meniru lingkungan hosting bersama jika Anda memiliki kendali atas pemasangan Anda. Anda juga harus memilih satu cara untuk menjalankan PHP (FastCGI atau CGI) tetapi tidak keduanya.
Selain versi (php5), ini sebenarnya jawaban terbaik di sini .. pertanyaannya tidak menyatakan 'untuk apa', hanya modul 'yang'. Terpilih!
GerardJP
8

Jika Anda ingin cara mudah untuk memverifikasi apakah server Anda memenuhi persyaratan ini, sekarang ada perintah WP-CLI ext yang berguna untuk melakukannya.

wp ext requiredmenunjukkan semua ekstensi PHP yang diperlukan untuk menjalankan WordPress, sementara itu wp ext recommendedmenunjukkan ekstensi yang opsional . wp ext checkadalah kombinasi dari kedua perintah.

Ini sangat berguna ketika Anda membutuhkan cara cepat untuk memeriksa persyaratan sistem pada server baru dan / atau jika Anda ingin memproses lebih lanjut daftar ini secara terprogram.

Begini cara wp ext requiredkerjanya:

$ 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
sumber
7

Saya telah mengembangkan pemeriksa lingkungan WordPress saya. Ini adalah kelas sederhana, berjalan di web SAPI atau di CLI. Ini adalah versi yang dikelola 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 ) );
    }
}

Berdasarkan karya @rarst

Szépe Viktor
sumber
3

Jika Anda menggunakan Debian 7 (Debian Wheezy), Anda perlu menginstal PHP sendiri dan sejumlah kecil ekstensi. Sebagian besar yang disebutkan oleh @Rarst sudah termasuk dalam salah satu pemasangan PHP paling dasar Debian.

PHP

Anda memiliki empat opsi di Debian Wheezy: libapache2-mod-php5 , libapache2-mod-php5filter , php5-cgi , atau php5-fpm . Saya memilih php5-fpm tetapi semuanya tergantung pada bagaimana Anda ingin server web Anda dan PHP berinteraksi.

MySQL

Anda juga perlu PHP untuk menggunakan MySQL. Pilihan Anda adalah php5-mysql dan php5-mysqlnd . php5-mysqlnd adalah asli dan umumnya lebih cepat. Beberapa mungkin memilih alternatif seperti MariaDB.

Perpustakaan Grafik Opsional

Jika Anda ingin ukuran gambar Anda diubah, Anda dapat menginstal php5-gd atau php5-imagick . php5-imagick akan memberikan Anda kualitas yang lebih baik dan Wordpress akan menggunakannya jika tersedia. Jika keduanya diinstal, php5-imagick akan digunakan. Jika tidak ada yang diinstal, gambar tidak akan diubah ukurannya (dan Wordpress tidak akan mengeluh).

HTTP Opsional

Jika Anda menginstal php5-curl , itu akan digunakan tetapi tidak diperlukan untuk apa pun kecuali kinerja yang lebih baik.


Tidak ada lagi yang diperlukan oleh Wordpress dan sebagian besar ekstensi, meskipun beberapa ekstensi mungkin memiliki persyaratan lain.

Berikut ini adalah baris instalasi dasar lengkap untuk memberikan semua yang dibutuhkan Wordpress untuk kinerja optimal dan tidak ada yang tidak:

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

sumber
2

Perlu disebutkan bahwa sejak WordPress 5.2, ada fitur bawaan yang melaporkan modul yang hilang. Temukan di Alat> Kesehatan Situs.

Sangat Tidak Teratur
sumber
1

"Cheatsheet" kecil saat memasang PHP untuk Wordpress di Debian:

0. Tambahkan repositori dotdeb

Tambahkan dua baris ini ke /etc/apt/sources.listfile Anda :

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

Tambahkan kunci GPG:

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

Perbarui "daftar paket":

sudo apt-get update

1. Instal PHP 7:

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

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

2. Daftar modul, yang termasuk dalam paket "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

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

3. Untuk menginstal modul tambahan yang diperlukan / direkomendasikan oleh wordpress:

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

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

4. Saya tidak dapat menemukan yang berikut di debian:

Openssl
Path Info Check
Zlib

5. "pencarian apt-cache php7" mengembalikan:

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

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

Tadej
sumber
1

The WordPress buku pegangan sekarang daftar modul PHP yang direkomendasikan:

Inti WordPress menggunakan ekstensi PHP. Jika ekstensi yang diinginkan tidak ada, WordPress harus melakukan lebih banyak pekerjaan untuk melakukan tugas yang dibantu oleh modul atau, dalam kasus terburuk, akan menghapus fungsionalitas. Karena itu ekstensi PHP yang tercantum di bawah ini direkomendasikan.

  • bcmath - Digunakan untuk meningkatkan kinerja perhitungan matematika.
  • curl - Melakukan operasi permintaan jarak jauh.
  • exif - Bekerja dengan metadata yang disimpan dalam gambar.
  • filter - Digunakan untuk memfilter input pengguna dengan aman.
  • fileinfo - Digunakan untuk mendeteksi mimetype dari unggahan file
  • mod_xml - Digunakan untuk menghasilkan XML, seperti untuk sitemap XML. Perhatikan bahwa mod_xml adalah modul Apache, bukan ekstensi PHP, tetapi terdaftar untuk kesadaran.
  • mysqli - Menyambungkan ke MySQL untuk interaksi basis data.
  • libsodium - Menghasilkan byte acak.
  • openssl - Mengizinkan koneksi berbasis SSL ke host lain.
  • pcre - Meningkatkan kinerja pencocokan pola dalam pencarian kode.
  • imagick - Memberikan kualitas gambar yang lebih baik untuk unggahan media. Lihat WP_Image_Editor masuk! untuk detail. Mengubah ukuran gambar yang lebih cerdas (untuk gambar yang lebih kecil) dan dukungan gambar mini PDF, ketika Ghost Script juga tersedia.
  • xml - Digunakan untuk parsing XML, seperti dari situs pihak ketiga.

Itu juga mencantumkan ekstensi PHP berikut sebagai opsional:

  • gd - Jika Imagick tidak diinstal, GD Graphics Library digunakan sebagai fallback terbatas secara fungsional untuk manipulasi gambar.
  • mcrypt - Menghasilkan byte acak ketika libsodium tidak tersedia.
  • xmlreader - Digunakan untuk parsing XML.
  • zlib - Gzip kompresi dan dekompresi.
TEKFused
sumber
Huh, saya ingin tahu apa yang mod_xmlharus dilakukan dengan apa pun karena core tidak mengimplementasikan peta situs XML atau terikat untuk berjalan di server web tertentu.
Rarst
0

Anda memerlukan ekstensi mysqli, pdo, dan gd. dan terkadang xml-rpc.

Saya sudah menjalankan WP dengan ekstensi asli mysqlnd untuk sementara waktu sekarang, itu cukup rapi. Memiliki barang-barang refleksi bawaan, jadi jika Anda ingin melihat apa yang terjadi dengan db dalam permintaan khusus itu, Anda dapat melakukannya.

zip sebagai ekstensi tidak diperlukan, sebagian besar program memanggil sistem zip yang dapat dieksekusi.

Vid Luther
sumber
2
WP tidak menggunakan layer PDO. Mungkin ada plugin yang memungkinkan Anda melakukan ini, tetapi API basis data WP masih dari zaman PHP kuno ...
onetrickpony