come sapere quali estensioni php sono installate


13

Devo installare su un server lampada esattamente le stesse estensioni php che sono installate su un vecchio server, come faccio a sapere esattamente quali estensioni sono installate per installare lo stesso sul nuovo server?

Risposte:


18

È possibile utilizzare la riga di comando -mper phpvedere quali sono installati i moduli.

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

È inoltre possibile utilizzare php -iper ottenere l' phpinfo();output tramite la riga di comando che includerebbe anche queste informazioni.

Riferimenti


5
Va notato che questo potrebbe non essere lo stesso set di moduli incluso da PHP in esecuzione in Apache.
Rich Remer,

2

Se l'estensione viene effettivamente utilizzata, dovrà essere referenziata php.inida qualche parte. Le estensioni vengono caricate in un modo abbastanza intuitivo:

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

ecc. ecc.

Una cosa a cui fare attenzione sono le estensioni introdotte da un inifile aggiuntivo incluso. Non sono sicuro di Debian, ma su RHEL c'è una /etc/php.d/directory in cui tutti i .inifile sono trattati come se fossero stati nella/etc/php.ini

Se non si trova in uno di questi due posti (principale php.inio uno dei file inclusi), l'estensione è più o meno semplicemente seduta sul filesystem non utilizzata.

MODIFICARE:

In realtà, penso di aver mentito. Potrebbe essere necessario esaminare i file php per le chiamate a dl () . Tuttavia, non conosco molte persone che caricano estensioni del genere. Non sono nemmeno sicuro di quale sia il caso d'uso, ma è un'altra area che dovresti probabilmente controllare.


È passato un po 'di tempo da quando ho creato PHP, ma penso che puoi anche scegliere di compilare staticamente le estensioni, a quel punto nessuna di queste opzioni sarà di aiuto.
Jules,

2

In Debian, le estensioni PHP sono caricate tramite file in /etc/php5/conf.d

Esistono due tipi di pacchetti Debian PHP che potrebbero essere installati qui:

  • Pacchetti Debian PHP (che hanno nomi che iniziano con php5-)
  • Pacchetti PECL PHP (che hanno nomi che iniziano con php-)

Per elencare entrambi sul tuo sistema, puoi usare questo comando: dpkg -l | grep 'ii php5 \? -' che elenca i pacchetti installati che iniziano con php- o php5-.

Potresti anche avere estensioni che sono state costruite con PECL dal codice sorgente. Elencare quelli con: elenco pecl

Infine, è possibile compilare le proprie estensioni alla vecchia maniera. In tal caso potrebbero non avere un file in /etc/php5/conf.d ma potrebbero essere aggiunti allo stesso php.ini.

Tutte le estensioni di solito hanno una sezione di output da phpinfo (); . php -m mostrerà la lista delle estensioni che PHP ha caricato (ognuna delle quali dovrebbe avere un punto nell'output di phpinfo). Ci saranno molte più estensioni elencate nell'output di php -m rispetto a quelle installate come pacchetti aggiuntivi in ​​Debian, perché ci sono molte estensioni predefinite integrate in PHP oltre a quelle che puoi installare in seguito.

Ecco un esempio di output da una macchina di sviluppo che elenca estensioni PHP extra installate:

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.