Preciso instalar em um servidor lamp exatamente as mesmas extensões php instaladas em um servidor antigo. Como saber exatamente quais extensões estão instaladas para instalar a mesma no novo servidor?
Preciso instalar em um servidor lamp exatamente as mesmas extensões php instaladas em um servidor antigo. Como saber exatamente quais extensões estão instaladas para instalar a mesma no novo servidor?
Respostas:
Você pode usar a opção de linha de comando -m
paraphp
ver quais módulos estão instalados.
$ php -m | head
[PHP Modules]
bz2
calendar
ctype
curl
date
dbase
dom
exif
fileinfo
...
Você também pode usar php -i
para obter phpinfo();
saída através da linha de comando que incluiria essas informações também.
Se a extensão estiver realmente sendo usada, ela precisará ser referenciada em php.ini
algum lugar. As extensões são carregadas de uma maneira bastante intuitiva:
extension=msql.so
extension=/path/to/extension/msql.so
etc etc.
Um aspecto a se observar são as extensões trazidas por um ini
arquivo adicional que está sendo incluído. Não tenho certeza sobre o Debian, mas no RHEL há um /etc/php.d/
diretório onde todos.ini
arquivos são tratados como se estivessem no principal./etc/php.ini
Se não estiver em um desses dois lugares (principal php.ini
ou em um dos arquivos incluídos), a extensão estará mais ou menos apenas no sistema de arquivos que não está sendo usado.
EDITAR:
Na verdade, acho que menti. Talvez você precise procurar nos arquivos php as chamadas para dl () . Porém, não conheço muitas pessoas que carregam extensões como essa. Nem tenho certeza de qual seria o caso de uso, mas é outra área que você provavelmente deve verificar.
No Debian, as extensões PHP são carregadas através de arquivos em /etc/php5/conf.d
Existem dois tipos de pacotes Debian PHP que podem ser instalados aqui:
Para listar os dois no seu sistema, você pode usar este comando: dpkg -l | grep 'ii php5 \? -' que lista os pacotes instalados começando com php- ou php5-.
Você também pode ter extensões criadas com PECL a partir do código-fonte. Listar aqueles com: lista pecl
Por fim, é possível compilar suas próprias extensões da maneira antiga. Nesse caso, eles podem não ter um arquivo no /etc/php5/conf.d, mas podem ser adicionados ao próprio php.ini.
Todas as extensões geralmente têm uma seção de saída de phpinfo (); . O php -m mostrará a lista de quais extensões o PHP carregou (cada uma delas deve ter um ponto na saída do phpinfo). Haverá muito mais extensões listadas na saída php -m do que as instaladas como pacotes complementares no Debian, porque existem muitas extensões padrão embutidas no PHP, bem como as que você pode instalar posteriormente.
Aqui está um exemplo de saída de uma máquina de desenvolvimento que lista extensões PHP instaladas extra:
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