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?
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?
Respuestas:
Puede utilizar el modificador de línea de comandos -m
para php
ver 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 -i
para obtener phpinfo();
resultados a través de la línea de comando que también incluiría esta información.
Si la extensión se está utilizando realmente, será necesario hacer referencia a ella en php.ini
alguna 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 ini
incluyen al incluir un archivo adicional . No estoy seguro acerca de Debian, pero en RHEL hay un /etc/php.d/
directorio donde todos los .ini
archivos se tratan como si hubieran estado en la carpeta principal./etc/php.ini
Si no está en uno de esos dos lugares (principal php.ini
o 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.
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:
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