¿Qué extensiones y bibliotecas de PHP necesita y/o usa WordPress?

12 feb 2012, 23:42:28
Vistas: 124K
Votos: 94

El Codex menciona vagamente solo la versión de PHP en los requisitos del servidor, sin embargo, PHP puede configurarse en un amplio rango de exclusión/inclusión de diferentes partes.

¿Cuáles son las extensiones/bibliotecas que:

  1. son requeridas para que WordPress funcione? MySQL...
  2. son requeridas para funciones específicas? GD ?...
  3. son preferidas para el mejor funcionamiento de funciones específicas? cURL...
  4. son comúnmente utilizadas por plugins? Zip...
5
Comentarios

¿Sabías que hay un error SSL en tu sitio (https://queryposts.com/)?

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

@IamtheMostStupidPerson gracias, la renovación automática del certificado había fallado por alguna razón, debería estar solucionado ahora.

Rarst Rarst
19 jul 2018 14:37:46

No hay problema, es Let's Encrypt, ¿no? Pensé que se renovaba automáticamente... En caso de que no se renueve automáticamente como en tu caso, ¿qué podemos hacer?

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

El soporte de hosting lo había reiniciado (se configuró a través de su integración), normalmente se renueva automáticamente para mí.

Rarst Rarst
19 jul 2018 16:25:12

Extremadamente difícil de encontrar, pero hay una recomendación oficial: https://make.wordpress.org/hosting/handbook/handbook/server-environment/#php-extensions

Aidan Aidan
6 nov 2018 09:04:30
Todas las respuestas a la pregunta 11
9
99

Lo pensé un poco más y dado el tamaño de la base de código de WP (incluyendo las bibliotecas incluidas) no parece muy realista compilar manualmente dicha lista (y repetirla para cada nueva versión - meh).

Busqué una herramienta apropiada de análisis estático de código - PHP_CompatInfo y después de algunos ajustes generé el siguiente reporte de extensiones utilizadas por el núcleo (versión escaneada 3.3.1):

  • cURL - 127 usos (requiere libcurl)

    • HTTP API (clase WP_Http_curl)
    • url_is_accessable_via_ssl()
    • SimplePie (sobrescrito con la clase WP_SimplePie_File)
    • GoogleSpell (del paquete TinyMCE, ¿no se usa?)
  • Date/Time - 367 usos

  • DOM - 6 usos (requiere libxml)

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

  • Filter - 2 usos

    • clase PHPMailer->ValidateAddress() (opcional)
  • FTP - 72 usos

    • clase ftp_base
    • clase ftp (versiones pure y sockets)
    • clase WP_Filesystem_FTPext
    • clase WP_Filesystem_ftpsockets
  • GD - 56 usos

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

    • wp-includes\pluggable.php múltiples usos (opcional - alternativa en wp-includes\compat.php)
  • iconv - 5 usos

    • clase SimplePie (opcional)
    • wp_check_invalid_utf8() (opcional)
    • wp-mail.php (opcional)
  • JSON - 20 usos

    • opcional, alternativas en wp-includes/compat.php
  • libxml - 4 usos

    • clase WP_oEmbed->_parse_xml() (opcional)
    • SimplePie
  • Multibyte String - 29 usos

    • alguna alternativa en wp-includes/compat.php
  • MySQL - 60 usos

    • clase wpdb
    • clase SimplePie_Cache (sobrescrito con la clase WP_Feed_Cache)
  • OpenSSL - 4 usos

    • clase PHPMailer
  • PCRE - 743 usos

  • SimpleXML - 1 uso

    • clase WP_oEmbed (parece opcional)
  • Sockets - 64 usos

    • clase ftp (implementación sockets)
  • SPL - 3 usos

  • Tokenizer - 3 usos

    • wp_doc_link_parse() (opcional)
  • XML Parser - 89 usos

  • XMLReader - 1 uso

    • SimplePie (parece opcional)
  • Zlib - 30 usos

13 feb 2012 21:55:40
Comentarios

Excelente recurso. Afortunadamente, la mayoría de las extensiones y bibliotecas mencionadas ahora vienen compiladas por defecto en PHP 5.2.4 y versiones superiores.

Chris_O Chris_O
18 feb 2012 07:21:15

@Chris_O siempre y cuando se siga la configuración por defecto... El equipo central ha mencionado varias veces que existen algunas configuraciones de PHP muuuuy extrañas por ahí. Lo que me llevó a hacer esta pregunta fue que en el trabajo compramos un VPS de un nuevo proveedor de hosting y, inesperadamente, tenía una configuración mínima con algunas extensiones típicas faltantes. Sería más conveniente proporcionar soporte con una lista de verificación de extensiones, que descubrir y pedir que se instalen una por una.

Rarst Rarst
18 feb 2012 18:14:10

¿Qué biblioteca se utiliza para descomprimir temas y plugins?

jgraup jgraup
24 nov 2016 23:23:37

@jgraup ZipArchive o PclZip, consulta las funciones relacionadas de descompresión http://queryposts.com/?s=unzip_file

Rarst Rarst
24 nov 2016 23:46:10

Nunca dejas de sorprenderme @Rarst ;-)

jgraup jgraup
25 nov 2016 00:04:37

Con v4.7 y la nueva vista previa/miniatura nativa de PDF, tu servidor necesita soporte para Imagick, ImageMagick y Ghostscript.

j08691 j08691
3 mar 2017 20:17:20

Falta la extensión ORACLE y otras bases de datos...

NaN NaN
24 mar 2017 16:46:51

@EASI ¿eh? WordPress no tiene soporte nativo para nada más que MySQL.

Rarst Rarst
24 mar 2017 16:49:30

probablemente valga la pena mencionar que esas bibliotecas podrían ser usadas por el núcleo, pero depende de configuraciones específicas y rutas de ejecución. por ejemplo, FTP es poco probable que se use si utilizas wp-cli para realizar actualizaciones del núcleo y plugins.

Mark Kaplun Mark Kaplun
7 dic 2017 08:50:20
Mostrar los 4 comentarios restantes
1
27

La respuesta para esto puede ser complicada y muy larga, hasta donde sé, también habrá algunas diferencias entre servidores y sistemas operativos (IIS, Apache). No puedo decir que la siguiente lista sea una lista COMPLETA, pero incluye algunas de las que conozco que son requeridas:

  • Curl y CurlSSL – No estoy seguro de que sea OBLIGATORIO, pero gran parte del código de WordPress lo usará si está disponible. Sin embargo, muchos plugins SÍ lo requieren y/o tendrán funciones limitadas sin él.

  • Exif – Permite al manejador de medios de WordPress extraer datos Exif de las imágenes.

  • Gettext – Manejo de .po y .mo para traducción, localización e internacionalización.

  • FTP – Se utiliza para realizar actualizaciones de plugins y WordPress mediante FTP.

  • GD – No necesita presentación, ¿verdad?.

  • Iconv – Conversiones de conjuntos de caracteres para todo, desde correo hasta análisis de RSS.

  • Mbregex y Mbstring – El nombre es bastante descriptivo: proporciona funciones utilizadas en todas partes :-)

  • Mcrypt – No es necesario para WordPress, pero muchos plugins lo necesitan.

  • Mime Magic – Ahora obsoleto en WordPress, pero sigue siendo bueno tenerlo por compatibilidad hacia atrás.

  • Mysql y el Mysql del sistema – Todos sabemos qué es esto y por qué es necesario, ¿no?.

  • Openssl – Esta biblioteca se utiliza para manejar conexiones cifradas con certificados SSL, permitiendo a WordPress conectarse a ubicaciones cifradas con SSL (https).

  • POSIX – Se utiliza para garantizar que WordPress mantenga correctamente los permisos y propietarios de los archivos.

  • Path Info Check – Algunas configuraciones de enlaces permanentes.

  • Pspell – Capacidades de revisión ortográfica para TinyMCE.

  • Sockets – Manejo de conexiones FTP y gestión de correo, también conocido como SMTP y POP en WordPress.

  • Zip – No estoy seguro de si es OBLIGATORIO, pero esta clase compatible con múltiples plataformas para creación y extracción de archivos zip SERÁ utilizada por WordPress si está disponible.

  • Zlib – Se utiliza en muchos casos, por ejemplo, compresión de archivos JS y CSS. De nuevo, no estoy seguro de si es OBLIGATORIO, pero es necesario.

Como se mencionó anteriormente, esto de ninguna manera es una lista COMPLETA. Fue compilada hace aproximadamente un año y podría necesitar alguna actualización. Muchas de estas funciones no son exactamente OBLIGATORIAS, pero sí RECOMENDADAS. En muchos casos, WordPress usará una función SI está disponible, y si no, ignorará la tarea. Un buen ejemplo es la falta de la biblioteca GD: no impedirá que WordPress funcione, pero no recortará, redimensionará ni modificará las imágenes subidas, dejando las originales (y desactivando la opción de "tamaño" en la función "insertar imagen en la publicación").

Como nota adicional, también diría que quizás esta pregunta obtendrá respuestas más correctas/actualizadas en serverfault.com que aquí...

13 feb 2012 11:27:19
Comentarios

¿Por qué esto no se encuentra en ningún lugar del sitio web de WordPress?

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

(Esto no pretende ser una respuesta. Solo información útil. Si crees que esta información no es útil, házmelo saber y simplemente la eliminaré.)

Creo que hablar en términos de paquetes sería más fácil para los principiantes, pero dado que los paquetes varían de un sistema a otro, es difícil cubrirlos todos.

Como tengo experiencia con Debian (y distribuciones basadas en Debian), me gustaría compartir esta información específica:

  • php5-cli
  • php5-dev
  • php5-fpm
  • php5-cgi
  • php5-mysql
  • php5-xmlrpc
  • php5-curl
  • php5-gd
  • php-apc (no es obligatorio, pero recomendado)
  • php-pear
  • php5-imap
  • php5-mcrypt
  • php5-pspell

Los paquetes mencionados anteriormente instalan todas las extensiones/bibliotecas/módulos mencionados en las otras respuestas; todos, excepto Mime Magic, que ya no es requerido por WordPress.

Otra buena manera de asegurarte de que tu servidor sea 100% compatible con WordPress es verificar qué paquetes vienen preinstalados en las empresas de hosting gestionado. Como tienen años de experiencia con quejas de clientes sobre incompatibilidades, lo sabrán mejor.

En el caso de Hostgator, los módulos de PHP que preinstalan incluyen (probablemente solo necesitarás la mayoría pero no todos):

Módulos de PHP preinstalados por Hostgator

Media Temple proporciona un archivo phpinfo(); para que revises su configuración. También es útil para fines de comparación.

10 feb 2013 05:17:51
Comentarios

¿Para qué necesita WP php5-cli, php5-dev, (php5-fpm && php5-cgi), php5-pear, php5-imap y php5-pspell? Tu enfoque parece ser simplemente instalar todo y es uno pobre. Al igual que la idea de que deberías imitar entornos de hosting compartido si tienes control sobre tu instalación. Además, deberías elegir una forma de ejecutar PHP (FastCGI o CGI) pero no ambas.

User User
10 jul 2014 03:50:50

Además de la versión (php5), esta es en realidad la mejor respuesta aquí... la pregunta no dice 'para qué', solo 'cuáles' módulos. ¡Votado a favor!

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

Si deseas una forma sencilla de verificar si tu servidor cumple con estos requisitos, ahora existe un práctico comando de extensión WP-CLI para hacerlo.

wp ext required muestra todas las extensiones PHP necesarias para ejecutar WordPress, mientras que wp ext recommended muestra las opcionales. wp ext check es una combinación de ambos comandos.

Estos resultan útiles cuando necesitas una forma rápida de verificar los requisitos del sistema en un nuevo servidor y/o si deseas procesar esta lista programáticamente.

Así es como funciona 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         |
+-----------+-----------+
Éxito: Todas las extensiones requeridas están instaladas
18 ene 2018 18:12:59
0

He desarrollado mi verificador de entorno WordPress. Es una clase simple, que se ejecuta en SAPI web o en CLI. Esta es la versión mantenida https://github.com/szepeviktor/debian-server-tools/blob/master/webserver/php-env-check.php

<?php
/**
 * Verificar el entorno PHP.
 *
 * Uso a través de un servidor web
 *     wget -q -O - "https://example.com/php-env-check.php"; echo
 * Uso en CLI
 *     php /ruta/a/php-env-check.php
 *
 * @package php-env-check
 * @version 0.2.0
 * @author Viktor Szépe <viktor@szepe.net>
 */

namespace O1;

// Solo acceso 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;
}

// Eliminar versión en caché de este archivo
if ( function_exists( 'opcache_invalidate' ) ) {
    opcache_invalidate( __FILE__ );
}

// Verificar entorno
$check = new Check_Env();
$status = empty( $check->errors );

// Mostrar reporte y salir
print json_encode( $check->errors );
exit( $status ? 0 : 1 );

/**
 * Verificar configuración PHP.
 */
final class Check_Env {

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

    /**
     * Ejecutar las verificaciones.
     *
     * @param void
     */
    public function __construct() {

        // Extensiones para WordPress en PHP 7.0
        // http://wordpress.stackexchange.com/a/42212

        // Versión del motor
        $this->assert( 'php', 70013, PHP_VERSION_ID );

        // Directivas principales
        $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' );

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

        // Extensiones comunes
        // 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 usará mysqli a través de mysqlnd (sin 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' );

        // Extensiones obsoletas
        $this->assert_disabled_extension( 'mcrypt' );
        $this->assert_disabled_extension( 'mysql' );

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

        // Extensiones de terceros

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

        // No para WordPress

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

    /**
     * Aserción simple.
     *
     * @param $id string       ID de aserción
     * @param $expected string Valor esperado
     * @param $result string   Valor actual
     */
    private function assert( $id, $expected, $result ) {

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

    /**
     * Aserción para una extensión PHP.
     *
     * @param $extension_name string Nombre de extensión
     * @param $id string             ID opcional de aserción
     */
    private function assert_extension( $extension_name, $id = '' ) {

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

    /**
     * Aserción negativa para una extensión PHP.
     *
     * @param $extension_name string Nombre de extensión
     * @param $id string             ID opcional de aserción
     */
    private function assert_disabled_extension( $extension_name, $id = '' ) {

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

    /**
     * Aserción para una directiva PHP.
     *
     * @param $directive_name string Nombre de directiva
     * @param $expected string       Valor esperado
     * @param $id string             ID opcional de aserción
     */
    private function assert_directive( $directive_name, $expected, $id = '' ) {

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

Basado en el trabajo de @rarst

24 nov 2016 21:14:41
2

El manual de WordPress ahora enumera los módulos PHP recomendados:

El núcleo de WordPress hace uso de extensiones PHP. Si la extensión preferida no está disponible, WordPress tendrá que realizar más trabajo para llevar a cabo la tarea que el módulo ayuda a realizar o, en el peor de los casos, perderá funcionalidad. Por lo tanto, se recomiendan las siguientes extensiones PHP:

  • curl – Realiza operaciones de solicitud remota.
  • exif – Trabaja con metadatos almacenados en imágenes.
  • filter – Utilizado para filtrar de forma segura la entrada de usuarios.
  • fileinfo – Se usa para detectar el tipo MIME de archivos subidos.
  • mod_xml – Utilizado para generar XML, como para un mapa del sitio XML. Nota: mod_xml es un módulo de Apache, no una extensión PHP, pero se incluye para conocimiento.
  • mysqli – Se conecta a MySQL para interacciones con la base de datos.
  • libsodium – Genera bytes aleatorios.
  • openssl – Permite conexiones basadas en SSL con otros hosts.
  • pcre – Aumenta el rendimiento en búsquedas de patrones en código.
  • imagick – Proporciona mejor calidad de imagen para subidas de medios. Ver WP_Image_Editor is incoming! para detalles. Redimensionamiento inteligente de imágenes (para imágenes más pequeñas) y soporte para miniaturas PDF, cuando Ghost Script también está disponible.
  • xml – Utilizado para analizar XML, como desde un sitio de terceros.

También enumera las siguientes extensiones PHP como opcionales:

  • gd – Si Imagick no está instalado, la biblioteca GD Graphics Library se usa como alternativa funcionalmente limitada para manipulación de imágenes.
  • mcrypt – Genera bytes aleatorios cuando libsodium no está disponible.
  • xmlreader – Utilizado para analizar XML.
  • zlib – Compresión y descompresión Gzip.
1 jun 2019 07:09:07
Comentarios

Hmm, me pregunto qué tiene que ver mod_xml con nada ya que el núcleo no implementa mapas de sitio XML ni está vinculado a ejecutarse en un servidor web específico.

Rarst Rarst
2 jun 2019 11:21:26

Nota: bcmath ha sido eliminado de esa lista en la página desde esta respuesta.

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

Si estás utilizando Debian 7 (Debian Wheezy), necesitas instalar PHP en sí y un pequeño número de extensiones. La mayoría de lo mencionado por @Rarst ya está incluido en una de las instalaciones más básicas de PHP en Debian.

PHP

Tienes cuatro opciones en Debian Wheezy: libapache2-mod-php5, libapache2-mod-php5filter, php5-cgi, o php5-fpm. Yo elijo php5-fpm, pero todo depende de cómo quieras que interactúen tu servidor web y PHP.

MySQL

También necesitas PHP para usar MySQL. Tus opciones son php5-mysql y php5-mysqlnd. php5-mysqlnd es nativo y generalmente más rápido. Algunos podrían elegir una alternativa como MariaDB.

Biblioteca de Gráficos Opcional

Si deseas que tus imágenes se redimensionen, puedes instalar php5-gd o php5-imagick. php5-imagick te dará mejor calidad y WordPress lo usará si está disponible. Si ambos están instalados, se usará php5-imagick. Si ninguno está instalado, las imágenes no se redimensionarán (y WordPress no se quejará).

HTTP Opcional

Si instalas php5-curl, se usará pero no es necesario para nada, excepto quizás para un mejor rendimiento.


WordPress no requiere nada más y la mayoría de las extensiones tampoco, aunque algunas extensiones pueden tener otros requisitos.

Aquí está la línea de instalación básica completa para darle a WordPress todo lo que necesita para un rendimiento óptimo y nada más:

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

Vale la pena mencionar que desde WordPress 5.2, existe una función integrada que informa sobre módulos faltantes. Puedes encontrarla en Herramientas > Salud del sitio.

29 jul 2019 07:13:16
0

Una pequeña "chuleta" para instalar PHP para WordPress en Debian:

0. Añadir el repositorio dotdeb

Añade estas dos líneas a tu archivo /etc/apt/sources.list:

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

Añade la clave GPG:

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

Actualiza la "lista de paquetes":

sudo apt-get update

1. Instalar PHP 7:

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

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

2. Lista de módulos incluidos en el paquete "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

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

3. Para instalar los módulos adicionales requeridos/recomendados por WordPress:

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

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

4. No pude encontrar lo siguiente en Debian:

Openssl
Path Info Check
Zlib

5. "apt-cache search php7" devuelve:

php7.0 - lenguaje de scripting embebido en HTML del lado del servidor (metapaquete)
php7.0-apcu - Caché de usuario APC para PHP
php7.0-apcu-bc - Módulo de compatibilidad hacia atrás para APCu
php7.0-bcmath - Módulo Bcmath para PHP
php7.0-bz2 - módulo bzip2 para PHP
php7.0-cgi - lenguaje de scripting embebido en HTML del lado del servidor (binario CGI)
php7.0-cli - intérprete de línea de comandos para el lenguaje PHP
php7.0-common - documentación, ejemplos y módulo común para PHP
php7.0-curl - módulo CURL para PHP
php7.0-dba - módulo DBA para PHP
php7.0-dbg - Símbolos de depuración para PHP7.0
php7.0-dev - Archivos para desarrollo de módulos PHP7.0
php7.0-enchant - Módulo Enchant para PHP
php7.0-fpm - lenguaje de scripting embebido en HTML del lado del servidor (binario FPM-CGI)
php7.0-gd - módulo GD para PHP
php7.0-geoip - módulo GeoIP para PHP
php7.0-gmp - módulo GMP para PHP
php7.0-igbinary - serializador igbinary para PHP
php7.0-imagick - Proporciona un wrapper para la biblioteca ImageMagick
php7.0-imap - módulo IMAP para PHP
php7.0-interbase - módulo Interbase para PHP
php7.0-intl - módulo de internacionalización para PHP
php7.0-json - módulo JSON para PHP
php7.0-ldap - módulo LDAP para PHP
php7.0-mbstring - módulo MBSTRING para PHP
php7.0-mcrypt - módulo libmcrypt para PHP
php7.0-memcached - módulo de extensión memcached para PHP, usa libmemcached
php7.0-mongodb - Controlador MongoDB para PHP
php7.0-msgpack - Serializador MessagePack para PHP
php7.0-mysql - módulo MySQL para PHP
php7.0-odbc - módulo ODBC para PHP
php7.0-opcache - módulo Zend OpCache para PHP
php7.0-pgsql - módulo PostgreSQL para PHP
php7.0-phpdbg - lenguaje de scripting embebido en HTML del lado del servidor (binario PHPDBG)
php7.0-pspell - módulo pspell para PHP
php7.0-readline - módulo readline para PHP
php7.0-recode - módulo recode para PHP
php7.0-redis - Extensión PHP para interactuar con Redis
php7.0-snmp - módulo SNMP para PHP
php7.0-soap - módulo SOAP para PHP
php7.0-sqlite3 - módulo SQLite3 para PHP
php7.0-ssh2 - Enlaces para la biblioteca libssh2
php7.0-sybase - módulo Sybase para PHP
php7.0-tidy - módulo tidy para PHP
php7.0-xdebug - Módulo Xdebug para PHP
php7.0-xml - módulos DOM, SimpleXML, WDDX, XML y XSL para PHP
php7.0-xmlrpc - módulo XMLRPC-EPI para PHP
php7.0-xsl - módulo XSL para PHP (dummy)
php7.0-zip - módulo Zip para PHP

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

20 mar 2017 11:57:10
0

Oficialmente, WordPress.org menciona que solo las siguientes extensiones de PHP son requeridas a partir de WP Core 5.3+ y al utilizar la versión recomendada de PHP, que actualmente es PHP 7.2:

curl -- Realiza operaciones de solicitud remota.
dom -- Se utiliza para validar contenido en Widgets de Texto y configurar automáticamente IIS7+.
exif -- Trabaja con metadatos almacenados en imágenes.
fileinfo -- Se usa para detectar el tipo MIME de archivos subidos.
hash -- Se utiliza para hashing, incluyendo contraseñas y paquetes de actualización.
json -- Se usa para comunicaciones con otros servidores.
mbstring -- Maneja correctamente texto en UTF8.
mysqli -- Conecta con MySQL para interacciones con la base de datos.
libsodium -- Valida firmas y proporciona bytes aleatorios seguros.
openssl -- Permite conexiones SSL con otros hosts.
pcre -- Mejora el rendimiento en búsquedas de patrones en el código.
imagick -- Proporciona mejor calidad de imagen en subidas de medios. Consulta WP_Image_Editor is incoming! para más detalles. Redimensionamiento más inteligente de imágenes (para imágenes más pequeñas) y soporte para miniaturas de PDF, cuando Ghost Script también está disponible.
xml -- Se usa para analizar XML, como desde un sitio de terceros.
zip -- Se utiliza para descomprimir Plugins, Temas y paquetes de actualización de WordPress.

...pero también recomiendan las siguientes extensiones opcionales:

filter -- Se utiliza para filtrar de manera segura la entrada de usuarios.
gd -- Si Imagick no está instalado, la Biblioteca Gráfica GD se utiliza como alternativa funcionalmente limitada para manipulación de imágenes.
iconv -- Se usa para convertir entre conjuntos de caracteres.
mcrypt -- Genera bytes aleatorios cuando libsodium y /dev/urandom no están disponibles.
simplexml -- Se utiliza para analizar XML.
xmlreader -- Se usa para analizar XML.
zlib -- Compresión y descompresión Gzip.

Sin embargo, ten en cuenta que algunas de estas extensiones requeridas (u opcionales) ya vienen incluidas en otros paquetes de PHP. Por ejemplo, dom a menudo está incluido en la extensión xml. Y otras como fileinfo probablemente ya estén instaladas como parte de un paquete llamado php-common si estás usando Ubuntu, etc.

Además, existen otras extensiones como bcmath que no son oficialmente requeridas o recomendadas por WordPress, pero que son utilizadas por muchos plugins populares, como Yoast SEO.

Puedes seguir nuestra lista de extensiones PHP para WordPress en LittleBizzy si estás interesado.

6 feb 2020 14:40:48
1

necesitas las extensiones mysqli, pdo y gd. y a veces xml-rpc.

He estado ejecutando WP con la extensión nativa mysqlnd durante un tiempo, es bastante útil. Tiene funciones de reflexión incorporadas, así que si quieres ver qué está pasando con la base de datos en esa solicitud específica, puedes hacerlo.

zip como extensión no es necesaria, la mayoría de los programas llaman al ejecutable zip del sistema.

13 feb 2012 17:10:18
Comentarios

WP no utiliza la capa PDO. Probablemente hay plugins que te permiten hacer esto, pero la API de base de datos de WP todavía proviene de los tiempos antiguos de PHP...

onetrickpony onetrickpony
13 feb 2012 20:36:58