Linux Befehl tail -f unter Windows

Linux tail gehört zu den GNU Core Utilities (Coreutils). Es handelt sich dabei um eine Sammlung grundlegender Befehle für die Kommandozeile, welche bei den meisten Linux OS enthalten sind.

In erster Linie dient der Linux-Befehl tail dazu, das Ende einer (Text)-Datei auszugeben, bzw. die Ausgabe auf einen bestimmten Bereich zu beschränken. Der tail-Befehl ist verwandt mit dem head-Befehl und den Befehlen cat und less. Diese Linux-Befehle erfüllen alle den einen zweck, die Inhalte von Textdateien auszugeben.

PowerShell Get-Content -Wait -Tail

Wie unter Linux verwendet man tail mit der Option -f (–follow), um die Aktualisierung einer Protokolldatei in Echtzeit zu verfolgen, bei Windows jedoch ist der tail-Befehl nicht vorhanden, dafür hat Windows den PowerShell Befehl Get-Content, mit der Option -Wait -Tail kann eine Protokolldatei in Echtzeit verfolgt werden, neue Zeilen die in die Protokolldatei geschrieben werden, können so auch unter Windows laufend angezeigt werden.

PS C:\> Get-Content C:\inetpub\logs\LogFiles\W3SVC1\20230227.log -Wait -Tail 20

In diesem Beispiel wird die IIS-Protokolldatei in Echtzeit verfolgt und in Windows 10 oder Windows 11 PowerShell ausgegeben.

  Die Aktualisierung wird gestoppt wenn man in das PowerShell Fenster klickt, die Aktualisierung bleibt im Markierungsmodus stehen, mit Escape wird die Aktualisierung wieder fortgeführt.

PHP-Versionen wechseln unter Debian mit Apache2

PHP-Version unter Debian zwischen mehreren Versionen festlegen

Sind auf einem Debian 10 und Debian 11 mehrere PHP-Versionen installiert, kann eine PHP-Version für das System und den Apache2-Webserver festgelegt und aktiviert werden.

Gehen wir davon aus, dass mehrere PHP-Versionen auf dem Debian-System installiert sind. Es soll nun die aktive PHP-Version für CLI und Apache2 gewechselt werden. Dieses Tutorial zeigt, wie zwischen mehreren PHP-Versionen für Apache-Webserver und CLI gewechselt wird.

Eine PHP-Version als Standard aktivieren

Es soll PHP 8.2 als aktive PHP-Version für CLI und Apache2 festgelegt werden. Dies geschieht indem man die Apache2-Module für alle anderen installierten PHP-Versionen deaktiviert und aus dem CLI mit dem Befehl update-alternatives festlegt.

$ update-alternatives --set php /usr/bin/php8.2
$ update-alternatives --set phar /usr/bin/phar8.2
$ update-alternatives --set phar.phar /usr/bin/phar.phar8.2

  Phar ist eine PHP-Erweiterung, die es ermöglicht, aus einer komprimierten Archivdatei heraus Programme oder Dateien im PHAR-Format (PHP-Archiv) verpackt zu verarbeiten. Die mit der Phar-PHP-Klasse erzeugten Archive werden in bzip2 und gzip-Komprimierung erstellt.

Für den Apache2-Webserver wird das entsprechende Modul mit dem Apache helper aktiviert, mit dem Befehl a2enmod, mit a2dismod wird das Modul deaktiviert.

$ a2dismod php7.4
$ a2enmod php8.2
$ systemctl restart apache2

a2enmod ist ein Skript, dass das angegebene Modul innerhalb der Apache2-Konfiguration aktiviert. Dies geschieht durch die Erstellung von Symlinks innerhalb /etc/apache2/mods-enabled.
a2dismod ist ein Skript, um ein Modul zu deaktivieren, indem es diese Symlinks entfernt. Es wird kein Fehler generiert, wenn versucht wird, ein bereits aktiviertes Modul zu aktivieren oder ein bereits deaktiviertes zu deaktivieren.

Es können mehrere PHP-Mudule in einem Befehl deaktiviert werden.

$ a2dismod php5.6 php7.1 php7.3 php7.4 php8.0 php8.1

Mit dem Apache 2-Syntaxvalidator können alle auf dem System verfügbaren PHP-Module ausgegeben werden.

$ apache2ctl -M

Bei Red Hat oder Rocky Linux und AlmaLinux (CentOS) ist der Befehl.

$ apachectl -M
Loaded Modules:
 core_module (static)
 mime_module (shared)
 php_module (shared)
...

Es werden alle auf dem System installierten Apache2 PHP-Module ausgegeben, wie hier in verkürzter Form.

a2query ist ein Programm zum Abrufen von Konfigurationswerten des Apache 2 HTTP-Webserver, zulässige Werte werden zurückgegeben, selbst wenn der Apache 2-Syntaxvalidator fehlschlägt.

$ a2query -m | grep php
php8.2 (enabled by site administrator)

Ebenso kann man sich die verfügbaren Apache2 PHP-Module auf dem Filesystem mithilfe von find abrufen und anzeigen lassen.

$ find /etc/apache2/mods-available/ -name *php\*

Die systemweiten PHP Einstellungen findet man unter /etc/php, für änderungen mit Apache2 editiert man die Datei php.ini.

$ vi /etc/php/8.2/apache2/php.ini

  Im Verzeichnispfad die Versionsnummer entsprechend ersetzen.

Aktive PHP-Version überprüfen

Welche PHP-Version aktiv ist? kann aus CLI abgerufen werden, die auf dem System aktiv festgelegte PHP-Version wie folgt abfragen.

$ php -v
PHP 8.2.3 (cli) (built: Feb 14 2023 16:53:07) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.3, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.3, Copyright (c), by Zend Technologies

Die für den Apache2-Webserver aktuelle PHP-Version und Module werden angezeigt, durch anlegen einer php-Datei mit folgendem Inhalt.

<?php
phpinfo();
?>

Die Apache2 default-site hat die DocumentRoot /var/www/html, hier die Datei phpinfo.php anlegen, sofern nicht eine andere vorgesehene DocumentRoot gewählt wird.

Die aktive PHP-Version und Module für den Apache2-Webserver werden im Webbrowser angezeigt: http://ip_oder_fqdn/phpinfo.php

Beispiel: http://192.168.3.2/phpinfo.php

php Version mit Browser abfragen

  Bei einem produktiven System sollte phpinfo.php nach beendeter Überprüfung wieder aus der DocumentRoot entfernt werden.