cómo saber qué extensiones php están instaladas

13

Necesito instalar en un servidor de la lámpara exactamente las mismas extensiones de php que están instaladas en un servidor antiguo, ¿cómo saber exactamente qué extensiones están instaladas para instalarlas en el nuevo servidor?

Tuyoshi Vinicius
fuente

Respuestas:

18

Puede utilizar el modificador de línea de comandos -mpara phpver lo que están instalados los módulos.

$ php -m | head
[PHP Modules]
bz2
calendar
ctype
curl
date
dbase
dom
exif
fileinfo
...

También puede usar php -ipara obtener phpinfo();resultados a través de la línea de comando que también incluiría esta información.

Referencias

slm
fuente
55
Cabe señalar que puede que este no sea el mismo conjunto de módulos incluido por PHP que se ejecuta en Apache.
Rich Remer
2

Si la extensión se está utilizando realmente, será necesario hacer referencia a ella en php.inialguna parte. Las extensiones se cargan de una manera bastante intuitiva:

extension=msql.so
extension=/path/to/extension/msql.so

etcétera etcétera.

Una cosa a tener en cuenta son las extensiones que se iniincluyen al incluir un archivo adicional . No estoy seguro acerca de Debian, pero en RHEL hay un /etc/php.d/directorio donde todos los .iniarchivos se tratan como si hubieran estado en la carpeta principal./etc/php.ini

Si no está en uno de esos dos lugares (principal php.inio uno de los archivos incluidos), entonces la extensión está más o menos sentada en el sistema de archivos que no se está utilizando.

EDITAR:

En realidad, creo que mentí. Puede que tenga que mirar sus archivos php para ver las llamadas a dl () . Sin embargo, no conozco a muchas personas que cargan extensiones como esa. Ni siquiera estoy seguro de cuál sería el caso de uso, pero es otra área que probablemente debería verificar.

Bratchley
fuente
Ha pasado un tiempo desde que construí PHP, pero creo que también puede optar por tener extensiones compiladas estáticamente, momento en el que ninguna de estas opciones ayudará.
Jules
2

En Debian, las extensiones PHP se cargan a través de archivos en /etc/php5/conf.d

Aquí se pueden instalar dos tipos de paquetes Debian de PHP:

  • Paquetes Debian PHP (que tienen nombres que comienzan con php5-)
  • Paquetes PECL PHP (que tienen nombres que comienzan con php-)

Para enumerar ambos en su sistema, puede usar este comando: dpkg -l | grep 'ii php5 \? -' que enumera los paquetes instalados que comienzan con php- o php5-.

También puede tener extensiones construidas con PECL a partir del código fuente. Haga una lista de aquellos con: pecl list

Finalmente, es posible compilar sus propias extensiones a la antigua usanza. En ese caso, es posible que no tengan un archivo en /etc/php5/conf.d pero podrían agregarse a php.ini.

Todas las extensiones generalmente tienen una sección de salida de phpinfo (); . php -m mostrará la lista de las extensiones que PHP ha cargado (cada una de las cuales debería tener un lugar en la salida de phpinfo). Habrá muchas más extensiones listadas en la salida de php -m que las que están instaladas como paquetes de complementos en Debian, porque hay muchas extensiones predeterminadas integradas en PHP, así como las que puede instalar después.

Aquí hay un ejemplo de salida de una máquina de desarrollo que enumera extensiones PHP adicionales instaladas:

root@zaphod:~# dpkg -l | grep 'ii  php5\?-'
ii  php-auth-sasl                         1.0.4-1                            all          Abstraction of various SASL mechanism responses
ii  php-db                                1.7.14-2                           all          PHP PEAR Database Abstraction Layer
ii  php-mail                              1.2.0-4                            all          PHP PEAR module for sending email
ii  php-mail-mime                         1.8.4-1                            all          PHP PEAR module for creating MIME messages
ii  php-mail-mimedecode                   1.5.5-1                            all          PHP PEAR module to decode MIME messages
ii  php-net-smtp                          1.6.1-1                            all          PHP PEAR module implementing SMTP protocol
ii  php-net-socket                        1.0.9-2                            all          PHP PEAR Network Socket Interface module
ii  php-pear                              5.4.39-0+deb7u2                    all          PEAR - PHP Extension and Application Repository
ii  php-xml-parser                        1.3.4-6                            all          PHP PEAR module for parsing XML
ii  php5-cgi                              5.4.39-0+deb7u2                    amd64        server-side, HTML-embedded scripting language (CGI binary)
ii  php5-cli                              5.4.39-0+deb7u2                    amd64        command-line interpreter for the php5 scripting language
ii  php5-common                           5.4.39-0+deb7u2                    amd64        Common files for packages built from the php5 source
ii  php5-curl                             5.4.39-0+deb7u2                    amd64        CURL module for php5
ii  php5-dev                              5.4.39-0+deb7u2                    amd64        Files for PHP5 module development
ii  php5-gd                               5.4.39-0+deb7u2                    amd64        GD module for php5
ii  php5-imagick                          3.1.0~rc1-1+b2                     amd64        ImageMagick module for php5
ii  php5-imap                             5.4.39-0+deb7u2                    amd64        IMAP module for php5
ii  php5-intl                             5.4.39-0+deb7u2                    amd64        internationalisation module for php5
ii  php5-mcrypt                           5.4.39-0+deb7u2                    amd64        MCrypt module for php5
ii  php5-mysql                            5.4.39-0+deb7u2                    amd64        MySQL module for php5
ii  php5-pgsql                            5.4.39-0+deb7u2                    amd64        PostgreSQL module for php5
ii  php5-sqlite                           5.4.39-0+deb7u2                    amd64        SQLite module for php5
ii  php5-suhosin-extension                0.9.37-2                           amd64        advanced protection system for PHP5
ii  php5-sybase                           5.4.39-0+deb7u2                    amd64        Sybase / MS SQL Server module for php5
ii  php5-xdebug                           2.2.1-2                            amd64        Xdebug Module for PHP 5
root@zaphod:~# pecl list
Installed packages, channel pecl.php.net:
=========================================
Package  Version State
APC      3.1.13  beta
memcache 3.0.8   beta
El profesor Falken
fuente