
Necesito instalar en un servidor lámpara exactamente las mismas extensiones php que están instaladas en un servidor antiguo, ¿cómo puedo saber exactamente qué extensiones están instaladas para instalar las mismas en el nuevo servidor?
Respuesta1
Puede utilizar el interruptor de línea de comando -m
para php
ver qué módulos están instalados.
$ php -m | head
[PHP Modules]
bz2
calendar
ctype
curl
date
dbase
dom
exif
fileinfo
...
También puede utilizar php -i
para obtener phpinfo();
resultados a través de la línea de comando, que también incluiría esta información.
Referencias
Respuesta2
Si la extensión realmente se utiliza, será necesario hacer referencia a ella en php.ini
algún lugar. 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 incorporan al ini
incluir un archivo adicional. No estoy seguro acerca de Debian, pero en RHEL hay un /etc/php.d/
directorio donde todos .ini
los archivos se tratan como si hubieran estado en el directorio principal./etc/php.ini
Si no está en uno de esos dos lugares ( php.ini
archivo principal o uno de los incluidos), entonces la extensión está más o menos en el sistema de archivos que no se utiliza.
EDITAR:
En realidad, creo que mentí. Puede que tengas quemire sus archivos php para ver las llamadas a dl(). Sin embargo, no conozco a mucha gente que cargue extensiones como esa. Ni siquiera estoy seguro de cuál sería el caso de uso, pero es otra área que probablemente deberías comprobar.
Respuesta3
En Debian, las extensiones PHP se cargan mediante archivos en/etc/php5/conf.d
Hay dos tipos de paquetes PHP Debian que pueden instalarse aquí:
- Paquetes PHP de Debian (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 es posible que tenga extensiones creadas con PECL a partir del código fuente. Enumere aquellos con: lista de pecl
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.dpero podría agregarse al propio php.ini.
Todas las extensiones suelen tener una sección de salida dephpinfo();. php-mmostrará la lista de las extensiones que PHP ha cargado (cada una de las cuales debe tener un lugar en la salida de phpinfo). Habrá muchas más extensiones enumeradas en elphp-msalida que se instalan como paquetes complementarios en Debian, porque hay muchas extensiones predeterminadas integradas en PHP, así como las que puede instalar después.
A continuación se muestra 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