Überprüfen Sie die in PHP geladenen Erweiterungen von der Konsole aus

Wenn wir auf einem Server ankommen, auf dem PHP installiert ist, kennen wir die Merkmale seiner Kompilierung, Konfiguration usw. nicht. Dies kann ein Problem sein, wenn wir eine Art Diagnose durchführen müssen, um einen Fehler zu beheben, und einer der ersten Schritte darin besteht, die in PHP geladenen Erweiterungen zu überprüfen .

Wir gehen davon aus, dass wir uns auf einem VPS- oder dedizierten Server befinden, auf den wir über SSH zugreifen können, und ermitteln die aktivierten PHP-Erweiterungen über die Befehlskonsole oder das Terminal.

Darüber hinaus werden wir weitere kleine Tricks und Tipps für diesen Artikel geben, die als Referenz bei der Diagnose möglicher Probleme mit einer PHP-Installation dienen. Wir werden Ubuntu 16.04 LTS mit einer Installation von PHP 7 aus den offiziellen Ubuntu-Repositories verwenden.

Einführung: PHP CLI und PHP CGI, zwei verschiedene Dinge.

Bevor wir fortfahren, müssen wir die Unterschiede zwischen PHP CLI und PHP CGI kennen , was oft zu Verwirrung führt. Wir werden nicht auf große Details eingehen, da wir zu viel erweitern würden, aber zusammenfassend könnten wir sagen:

  • PHP CLI : ist die Binärdatei, die unter einem Befehlsinterpreter ausgeführt werden soll, dh der, die wir vom Terminal , der Befehlszeile oder der Shell aus verwenden.
  • PHP CGI : ist die Binärdatei, die für die Ausführung von Webanwendungen bestimmt ist, dh , was über unseren Webserver aufgerufen wird .

Es gibt verschiedene Unterschiede zwischen beiden Binärdateien, aber das, was uns an diesem Tutorial interessiert, ist, dass diese Binärdateien unterschiedliche php.ini Konfigurationsdateien verwenden . Damit meine ich, dass wir, wenn wir PHP über die Befehlszeile ausführen, PHP CLI verwenden und daher die entsprechende Konfiguration verwenden, für die möglicherweise unterschiedliche Erweiterungen für PHP CGI aktiviert sind.

See also  So installieren Sie den ionCube Loader auf einem Server

Um die in PHP CGI geladenen Erweiterungen zu sehen, erstellen info.php am einfachsten eine info.php Datei mit dem Code <?php phpinfo(); ?> <?php phpinfo(); ?> und sehen Sie die Informationen, die uns vom Browser zurückgeben.

Der Zweck dieses Tutorials ist es, die über die Befehlszeile geladenen PHP-Module zu überprüfen. Obwohl diese normalerweise mit den von PHP CGI geladenen identisch sind, müssen wir uns bewusst sein, dass Sie die Konfigurationsdateien manuell bearbeiten können, wenn jemand sie bearbeitet In beiden Binärdateien sind verschiedene Module geladen.

In meiner PHP-Installation lauten die Konfigurationsdateien beispielsweise :

  • Für PHP CLI: /etc/php/7.0/cli/php.ini
  • Für PHP CGI: /etc/php/7.0/apache2/php.ini

Um dies zu klären, gehen wir zum nächsten Abschnitt, um die in PHP geladenen Erweiterungen zu überprüfen.

Überprüfen Sie die in PHP geladenen Erweiterungen von der Konsole aus.

Der grundlegende Befehl zum Herausfinden der installierten PHP-Module lautet:
php -m

Dieser Befehl gibt Folgendes zurück:

 [PHP Modules] calendar Core ctype curl date dom exif fileinfo filter ftp gd gettext hash iconv intl json libxml mbstring mcrypt mysqli mysqlnd openssl pcntl pcre PDO pdo_mysql Phar posix readline Reflection session shmop SimpleXML sockets SPL standard sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter xsl Zend OPcache zlib  [Zend Modules] Zend OPcache 

Betonen Sie, dass dieser Befehl nur die installierten Erweiterungen angibt, jedoch nicht aktiviert werden muss. Um Informationen zu einem bestimmten Modul zu erhalten und herauszufinden, ob es aktiviert ist oder nicht, verwenden wir den folgenden Befehl:
php --ri nombre_modulo

Wenn wir zum Beispiel php --ri zlib ausführen, php --ri zlib wir etwas Ähnliches wie:

 ZLib Support => enabled Stream Wrapper => compress.zlib:// Stream Filter => zlib.inflate, zlib.deflate Compiled Version => 1.2.8 Linked Version => 1.2.8  Directive => Local Value => Master Value zlib.output_compression => Off => Off zlib.output_compression_level => -1 => -1 zlib.output_handler => no value => no value 

Erhalten Sie zusätzliche Informationen aus unserer PHP-Installation.

Um Konfigurationsinformationen eines PHP-Moduls zu erhalten , führen wir den folgenden Befehl aus:
php --re nombre_modulo

Wenn wir die geladenen PHP-Konfigurationsdateien herausfinden wollen, führen wir den Befehl aus:
php --ini

Um umfassende Informationen zu unserer PHP-Installation zu erhalten , können wir den Befehl php -i ausführen, der Informationen phpinfo() , die denen in phpinfo() in PHP CGI sehr ähnlich sind.

See also  So löschen Sie den Verlauf des Terminals oder der Konsole unter Linux

Schließlich können wir uns oft das Verzeichnis mit den mods-available unserer PHP-Installation ansehen, um herauszufinden, welche PHP-Module installiert sind. In meinem Fall kann ich ls /etc/php/7.0/mods-available und eine Liste wie die folgende sehen:

 calendar.ini gd.ini    mysqli.ini   readline.ini  tokenizer.ini ctype.ini   gettext.ini  mysqlnd.ini  shmop.ini   wddx.ini curl.ini   iconv.ini   opcache.ini  simplexml.ini xml.ini dom.ini    intl.ini   pdo.ini    sockets.ini  xmlreader.ini exif.ini   json.ini   pdo_mysql.ini sysvmsg.ini  xmlwriter.ini fileinfo.ini mbstring.ini phar.ini    sysvsem.ini  xsl.ini ftp.ini    mcrypt.ini  posix.ini   sysvshm.ini 

Ich hoffe, diese kleinen Tricks und Tipps helfen Ihnen dabei, mögliche Fehler zu beheben oder eine Inkompatibilität auf Ihrem Server zu diagnostizieren. Bei Fragen oder Abfragen können Sie wie immer die Kommentare verwenden.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *