
Ich muss auf einem LAMP-Server genau dieselben PHP-Erweiterungen installieren, die auf einem alten Server installiert sind. Wie weiß ich genau, welche Erweiterungen installiert sind, um dieselben auf dem neuen Server zu installieren?
Antwort1
Sie können den Befehlszeilenschalter verwenden, -m
um php
zu sehen, welche Module installiert sind.
$ php -m | head
[PHP Modules]
bz2
calendar
ctype
curl
date
dbase
dom
exif
fileinfo
...
Sie können auch eine Ausgabe über die Befehlszeile php -i
erhalten phpinfo();
, die diese Informationen ebenfalls enthalten würde.
Verweise
Antwort2
Wenn die Erweiterung tatsächlich verwendet wird, muss php.ini
irgendwo darauf verwiesen werden. Erweiterungen werden auf ziemlich intuitive Weise geladen:
extension=msql.so
extension=/path/to/extension/msql.so
usw., usw.
Eine Sache, auf die man achten muss, sind Erweiterungen, die durch das ini
Einbinden einer zusätzlichen Datei entstehen. Bei Debian bin ich mir nicht sicher, aber bei RHEL gibt es ein /etc/php.d/
Verzeichnis, in dem alle .ini
Dateien so behandelt werden, als wären sie im Hauptverzeichnis/etc/php.ini
Wenn es sich nicht an einem dieser beiden Orte befindet (Hauptdatei php.ini
oder eine der enthaltenen Dateien), befindet sich die Erweiterung mehr oder weniger einfach ungenutzt im Dateisystem.
BEARBEITEN:
Eigentlich glaube ich, dass ich gelogen habe. Vielleicht müssen SieSuchen Sie in Ihren PHP-Dateien nach Aufrufen von dl(). Ich kenne allerdings nicht viele Leute, die Erweiterungen auf diese Weise laden. Ich bin mir nicht einmal sicher, was der Anwendungsfall wäre, aber das ist ein weiterer Bereich, den Sie wahrscheinlich überprüfen sollten.
Antwort3
In Debian werden PHP-Erweiterungen über Dateien in/etc/php5/conf.d
Es gibt zwei Arten von PHP-Debian-Paketen, die hier installiert werden können:
- Debian-PHP-Pakete (deren Namen mit php5- beginnen)
- PECL PHP-Pakete (deren Namen mit php- beginnen)
Um beides auf Ihrem System aufzulisten, können Sie diesen Befehl verwenden: dpkg -l | grep 'ii php5\?-' Hier werden installierte Pakete aufgelistet, die entweder mit php- oder php5- beginnen.
Möglicherweise verfügen Sie auch über Erweiterungen, die mit PECL aus dem Quellcode erstellt wurden. Listen Sie diese auf mit: pecl-Liste
Schließlich ist es möglich, eigene Erweiterungen auf herkömmliche Weise zu kompilieren. In diesem Fall haben sie möglicherweise keine Datei in/etc/php5/conf.dkann aber zu php.ini selbst hinzugefügt werden.
Alle Erweiterungen haben normalerweise einen Ausgabeabschnitt vonphpinfo();. php -mzeigt die Liste der von PHP geladenen Erweiterungen an (jede davon sollte einen Platz in der phpinfo-Ausgabe haben). Es werden viele weitere Erweiterungen aufgelistet inphp -mAusgaben, die als Zusatzpakete in Debian installiert sind, da viele Standarderweiterungen in PHP integriert sind und es auch solche gibt, die Sie nachträglich installieren können.
Hier ist eine Beispielausgabe einer Entwicklungsmaschine, die zusätzlich installierte PHP-Erweiterungen auflistet:
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