wie man weiß, welche PHP-Erweiterungen installiert sind


13

Ich muss auf einem Lampenserver genau die gleichen PHP-Erweiterungen installieren, die auf einem alten Server installiert sind. Wie kann ich genau wissen, welche Erweiterungen installiert sind, um sie auf dem neuen Server zu installieren?

Antworten:


18

Sie können die Befehlszeilenoption verwenden , -mum phpzu sehen , welche Module installiert sind.

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

Sie können auch verwenden php -i, um eine phpinfo();Ausgabe über die Befehlszeile zu erhalten, die auch diese Informationen enthält.

Verweise


5
Es sollte beachtet werden, dass dies möglicherweise nicht der gleiche Satz von Modulen ist, der in PHP enthalten ist und in Apache ausgeführt wird.
Rich Remer

2

Wenn die Erweiterung tatsächlich verwendet wird, muss php.iniirgendwo darauf verwiesen werden . Erweiterungen werden ziemlich intuitiv geladen:

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

usw. usw.

Eine Sache, auf die Sie achten sollten, sind Erweiterungen, die durch das Hinzufügen einer zusätzlichen iniDatei hinzugefügt werden. Ich bin mir bei Debian nicht sicher, aber auf RHEL gibt es ein /etc/php.d/Verzeichnis, in dem alle .iniDateien so behandelt werden, als wären sie im Hauptverzeichnis enthalten/etc/php.ini

Wenn es sich nicht an einer dieser beiden Stellen befindet (Haupt- php.inioder eine der enthaltenen Dateien), befindet sich die Erweiterung mehr oder weniger auf dem Dateisystem, das nicht verwendet wird.

BEARBEITEN:

Eigentlich glaube ich, dass ich gelogen habe. Möglicherweise müssen Sie in Ihren PHP-Dateien nach Aufrufen von dl () suchen . Ich kenne allerdings nicht viele Leute, die solche Erweiterungen laden. Ich bin mir nicht einmal sicher, was der Anwendungsfall sein würde, aber es ist ein weiterer Bereich, den Sie wahrscheinlich überprüfen sollten.


Es ist schon eine Weile her, dass ich PHP gebaut habe, aber ich denke, Sie können auch festlegen, dass Erweiterungen statisch kompiliert werden. Zu diesem Zeitpunkt hilft keine dieser Optionen.
Jules

2

In Debian werden PHP-Erweiterungen über Dateien in /etc/php5/conf.d geladen

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)

Mit dem folgenden Befehl können Sie beide auf Ihrem System auflisten : dpkg -l | grep 'ii php5 \? -' listet installierte Pakete auf, die entweder mit php- oder php5- beginnen.

Möglicherweise verfügen Sie auch über Erweiterungen, die mit PECL aus dem Quellcode erstellt wurden. Liste diejenigen mit: Pecl-Liste

Schließlich ist es möglich, Ihre eigenen Erweiterungen auf altmodische Weise zu kompilieren. In diesem Fall verfügen sie möglicherweise nicht über eine Datei in /etc/php5/conf.d, sondern werden möglicherweise zur php.ini selbst hinzugefügt.

Alle Erweiterungen haben normalerweise einen Ausgabeabschnitt von phpinfo (); . php -m zeigt die Liste der von PHP geladenen Erweiterungen an (von denen jede einen Platz in der phpinfo-Ausgabe haben sollte). Es werden viel mehr Erweiterungen in der PHP-M- Ausgabe aufgeführt sein, als als Add-On-Pakete in Debian installiert sind, da es in PHP viele Standarderweiterungen gibt, die Sie auch nachträglich installieren können.

Hier ist eine Beispielausgabe von einer Entwicklungsmaschine, die zusätzliche 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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.