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?
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:
È possibile utilizzare la riga di comando -m
per php
vedere quali sono installati i moduli.
$ php -m | head
[PHP Modules]
bz2
calendar
ctype
curl
date
dbase
dom
exif
fileinfo
...
È inoltre possibile utilizzare php -i
per ottenere l' phpinfo();
output tramite la riga di comando che includerebbe anche queste informazioni.
Se l'estensione viene effettivamente utilizzata, dovrà essere referenziata php.ini
da 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 ini
file aggiuntivo incluso. Non sono sicuro di Debian, ma su RHEL c'è una /etc/php.d/
directory in cui tutti i .ini
file sono trattati come se fossero stati nella/etc/php.ini
Se non si trova in uno di questi due posti (principale php.ini
o 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.
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:
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