CentOS7 – PHP auf 7.2 updaten

CentOS 7 hat ja ein mitlerweile steinaltes PHP 5.4 on board. Sicherheitsupdates dafür sind Fehlanzeige, Support ebenso. Was liegt also näher, als auf PHP 7.2 updzudaten? Voraussetzung ist natürlich, das man vorher geprüft hat, das damit alle Webanwendungen die man verwendet, funktionieren.

Schritt 1: Zunächst müssen wir die Yum-Utils und das Epel-Repository installieren.

yum install epel-release yum-utils -y

Schritt 2: Remipo herunteraden und installieren

yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Schritt 3: Das PHP 7.2 Repository aktivieren. Gültige Parameter wären auch remi-php70 oder remi-php71 je nach gewünschter Version.

yum-config-manager --enable remi-php72

Schritt 4: PHP installieren.

yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysql -y

Um alle PHP-Module anzuzeigen, hilft dieser Befehl weiter:

yum search php | more

Schritt 5: Installation prüfen. Zunächst sollte man an der Shell einfach php -v eintippen. Hier muss nun die PHP-Version 7.2 (oder die man gerade installiert hat) zurückgegeben werden. Nun sollte man noch ins Webserver-Verzeichnis eine PHP-Datei ablegen und diese dann im Browser aufrufen – auch hier muss die aktuelle Versionsnummer angezeigt werden. Inhalt:

<?php
phpinfo();
?>

ownCloud / nextCloud – Dateien als Ordner in Documents am iPad

Seit langem nutze ich die App „Documents“ von Readdle. Seit dem letzten ownCloud-Update auf onwCloud 10.x werden hier Dateien als Ordner angezeigt. Andere WebDAV-Clients funktionieren soweit ich das beurteilen konnte.

Ich habe dann länger nach der Ursache geforscht. Unter anderem habe ich das ganze auch mit einer aktuellen nextCloud-Installation getestet, mit dem gleichen Ergebnis. Mit einer alten ownCloud 9 hingegen hat alles richtig funktioniert. Nach längerer Recherche fand ich dann die Lösung in diesem GitHub-Issue.

Zusammengefasst:

Im ownCloud-Verzeichnis gibt es die Datei /lib/composer/sabre/dav/lib/DAV/Server.php

In dieser sucht man nach @param PropFind und löscht den darunter folgenden Block raus und fügt den hier ein. Und schon funktioniert es wieder mit Readdle Documents und ownCloud 10.

 * Small helper to support PROPFIND with DEPTH_INFINITY.
 *
 *
 * @param PropFind $propFind
 * @param array $yieldFirst
 * @return \Iterator
 */
private function generatePathNodes(PropFind $propFind, array $yieldFirst = null) {
    if ($yieldFirst !== null) {
        yield $yieldFirst;
    }
    $newDepth = $propFind->getDepth();
    $path = $propFind->getPath();

    if ($newDepth !== self::DEPTH_INFINITY) {
        $newDepth--;
    }

//FIX in order to create new PropFind objects and not clone them
$propertyNames = $propFind->getRequestedProperties();
$propFindType = $propertyNames ? PropFind::NORMAL : PropFind::ALLPROPS;

    foreach ($this->tree->getChildren($path) as $childNode) {
     //FIX : no cloning, creating new PropFind objects
        //$subPropFind = clone $propFind;
        //$subPropFind->setDepth($newDepth);
        if ($path !== '') {
            $subPath = $path . '/' . $childNode->getName();
        } else {
            $subPath = $childNode->getName();
        }
        //$subPropFind->setPath($subPath);

     //FIX : create a new PropFind object with the right parameters
     $subPropFind = new PropFind($subPath, $propertyNames, $newDepth, $propFindType);

        yield [
            $subPropFind,
            $childNode
        ];

        if (($newDepth === self::DEPTH_INFINITY || $newDepth >= 1) && $childNode instanceof ICollection) {
            foreach ($this->generatePathNodes($subPropFind) as $subItem) {
                yield $subItem;
            }
        }

    }
}

VMWare 6.5 steht an der Meldung „Initializing IOV“

Musste einen VMWare-Server mit ESXi 5.5 mit einer ESXi 6.5 neu installieren. Die Hardware war keine VMWare-zertifizierte Hardware, aber 5.5 lief darauf ohne Probleme.

Bereits beim booten von der Installations-CD blieb der Server an der Meldung „Initializing IOV“ stehen.

Die akute Lösung war, Shift + O zu drücken und dann an der Ende der Zeile einfach “ noIOMMU“ dazuzuschreiben. Also nichts entfernen, nur hinten dazu. Schon startete die Installation.

Später nach einem Neustart kam allerdings weiterhin die Meldung und verhinderte den Start von ESXi 6.5. Aber auch das kann man relativ einfach beheben. Erstmal wieder mit der oben beschriebenen Methode den ESXi-Server hochfahren, dann meldet man sich per Webinterface auf dem Server an. Nun kann man über „Aktionen / Dienste / Secure Shell aktivieren“ das SSH am Server einschalten.

Danach verbindet man sich einfach per ssh oder PuTTY mit dem ESXi-Server. Mit dem Befehl vi /bootbank/boot.cfg schreibt man dann in die Zeile die mit kernelopt beginnt ganz hinten das “ noIOMMU“ rein und speichert die Änderung. Das wars dann auch schon.

Windows 10: Spectre- und Meltdown-Patch abschalten wegen Paritätsfehler

An einem meiner Rechner kam es seit dem bei Windows 10 der Spectre- und Meltdown-Patch installiert wurde zu unzähligen Einträgen in dieser Form:

Protokollname: System
Quelle: Microsoft-Windows-WHEA-Logger
Datum: 27.04.2018 10:25:05
Ereignis-ID: 19
Aufgabenkategorie:Keine
Ebene: Warnung
Schlüsselwörter:
Benutzer: Lokaler Dienst
Behobener Hardwarefehler.

Gemeldet von Komponente: Prozessorkern
Fehlerquelle: Behobene Computerüberprüfung
Fehlertyp: Interner Paritätsfehler
Prozessor-APIC-ID: 0

Mein Problem waren aber eigentlich nicht die Einträge im Ereignislog, sondern die Tatsache das es seit dem Patch zu zahlreichen Bluescreens und Stabilitätsproblemen in Anwendungen kam.

Seit dem Deaktivieren der Patches ist dieses Problem behoben. Allerdings ist klar, das diese Patche nicht ohne Grund gemacht wurden und durchaus sicherheitsrelevant sind. Ohne wirklich guten Grund sollte man die also auch nicht deaktivieren.

Mit diesen beiden Befehlen kann man unter Windows 10 die Registry so ändern, das die Spectre- und Meltdown-Patche CVE-2017-5715 und CVE-2017-5754 deaktiviert sind:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 3 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

 

Mit diesen beiden Befehlen kann man unter Windows 10 die Registry so ändern, das nur der Spectre-Patch CVE-2017-5715 deaktiviert ist. Microsoft empfielt das bei Stabitlitätsproblemen:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 1 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

 

Falls man die Patche wieder aktivieren will (also den Urzustand wieder herstellen möchte), so helfen diese beiden Befehle (die 3 im zweiten Befehl ist Absicht und korrekt!):

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

An der Stelle die deutliche Warnung: Es gibt einen Grund für die Spectre- und Meltdown-Patche. Diese zu deaktivieren, ohne zu wissen was man tut ist ausdrücklich keine gute Idee.

Schön erklärt ist das ganze auch noch bei Microsoft in diesem Artikel.

Java-Update unter Windows verhindern

Java führt im Hintergrund immer wieder eigenständig Software-Updates von sich selbst aus. Auf einem Client-Betriebssystem ist das aus Sicherheitsgründen ein durchaus erwünschtes Verhalten. Auf Servern hingegen kann es zum Fluch werden, wenn eine installierte Server-Anwendung nach einem Update einfach nicht mehr funktioniert, oder nicht mehr das tut, was sie soll.

Ein deaktivieren der automatischen Updates funktioniert leider nicht immer zuverlässig. Aber es gibt einen Weg: man kann den Java-Updater unter Windows einfach deinstallieren. Java bleibt damit weiterhin auf dem Rechner, nur die Update-Komponente wird deinstalliert.

Hier hilft dieser Befehl weiter, den man als Administrator eingibt:

msiexec.exe /x {4A03706F-666A-4037-7777-5F2748764D10}

Den Erfolg kann man prüfen, indem man in der Systemsteuerung das Java Control Panel öffnet. Die hier gezeigte Registerkarte „Update“ sollte nun verschwunden sein.

An der Stelle der deutliche Hinweis: Sicherheitsupdates sind sinnvoll! Man sollte die Updates von Java nur dann verhindern, wenn man einen guten Grund dafür hat und weiß was man tut. Einige Serveranwendungen erfordern aber eine feste Java-Version und reagieren auf automatische Updates sehr gereizt. Das ist der Einsatzzweck obiger Lösung.

iOS – Batteriezustand ermitteln

Wer kennt es nicht – da kauft man ein gebrauchtes iPhone oder iPad und würde gerne wissen, wie der Zustand der Batterie ist. Oder man hat einfach nur das Gefühl, das die Batterie nicht mehr so toll ist, möchte aber vor einem kostenpflichtigen Tausch des Akkus wissen, wie der Status denn wirklich ist.

Im AppStore gibt es hierfür eine gute App: Battery Life

Einfach installieren und etwas laufen lassen.

Relativ schnell wird einem dann der Verschleißgrad des Akkus angezeigt. Ich habe es mit einigen Geräten getestet und das Ergebnis war auch wie erwartet – die Geräte mit alter Batterie wurden rot angezeigt, die bei denen die Batterie gefühlt noch gut ist waren grün oder gelb.

Die App an sich ist kostenlos, aber werbeverseucht. Die Werbung kann man aber mit einem In-App-Kauf abschalten.

SIM-Kartennummer am Handy auslesen

Eigentlich hat die SIM-Kartennummer keine große Bedeutung. Aber es gibt einige Fälle in denen man die braucht. Beispielsweise beim Anbieterwechsel, oder wenn man Multi-SIM (also mehrere SIM-Karten mit einer Rufnummer) nutzt, macht es Sinn, die Kartennummer zu kennen.

Der Fachbegriff für die Kartennummer lautet: Integrated Circuit Card ID (ICCID)

Unter Android kann man sich diese Kartennummer leider nicht anzeigen lassen. Aber wenn man im PlayStore einfach nach ICCID sucht, findet man einige Apps mit denen man die ICCID auslesen kann.

Bei iOS-Geräten (iPhone und iPad) ist das noch etwas einfacher: Einfach in die Einstellungen unter Allgemein / Info. Dort wird dann die ICCID angezeigt.

Wenn man hingegen die SIM-Karte schon ausgebaut hat: meist steht die ICCID auch aufgedruckt auf der Karte. Aber mit obigen Tipps erspart man sich u.U. das ausbauen.

Webserver-Administration mit VirtualMin – Plesk ist tot…

Bisher (siehe alte Blog-Einträge) war ich ein zufriedener Nutzer der kommerziellen Server-Administrationsoberfläche Plesk. Leider hat der Softwarehersteller seine Lizenzpolitik zum Jahresende 2017 so geändert, so das ich jetzt mehr Geld für die Administrationsoberfläche als für den vServer gezahlt hätte. Das war nicht mehr tragbar und so sah ich mich nach einer zukunftsfähigen Lösung um, die meine Anforderungen abdeckte. Diese wären:

  • Einfach Administration von Domains und Subdomains
  • Einfach Administration vom Mailadressen, Mailpostfächern und mySQL-Datenbanken
  • Grafische Oberfläche die verständlich und leicht zu installieren ist
  • Unterstützung von Let’s Encrypt SSL-Zertifikaten für Webserver, Mailserver und FTP-Server
  • Automatisierung von Backups auf einen externen Server, wenn möglich Übertragung per SSH

Ich habe einiges ausprobiert und bin dann letztlich bei VirtualMin gelandet, einer Erweiterung zu Webmin. Meine Anforderungen erfüllt es gut und die Installation verlief dank der ausführlichen Anleitung auf der Webmin-Homepage recht gut. Es stellte sich heraus, das man VirtualMin am besten mit dem Installationsskript auf einem Server installiert, auf dem ein minimal konfiguriertes Linux, am besten ohne Apache und mySQL läuft. Während das Installationsskript läuft, werden alle Komponenten wie mySQL, Apache, Mail- und FTP-Server nachinstalliert.

Ausführliche Infos und die Installationsanleitung findet man auf der Webseite von VirtualMin.

Die Navigation der Anwendung sieht dann so aus:

Alles in allem funktioniert das ganze sehr problemlos und nach kurzer Eingewöhnungszeit kann ich mitlerweile damit alles tun, was ich in Plesk erledigt habe. Nur halt endlich in einer OpenSource-Software, die keine irren Beträge kostet und von einer willkürlichen Preispolitik eines Herstellers abhängig ist.

Ach ja: ein Update von Plesk auf VirtualMin geht nicht, genauso wenig wie das zu einem anderen Panel hin ginge. Die Software macht hierfür zu viele Änderungen im System und jedes Administrationspanel speichert seine Daten an unterschiedlichen Orten und hat auch so einige Besonderheiten, die einen einfachen Umstieg schwierig machen. Aber mit einer Parallelbereitstellung von 2 Servern und schrittweisen Umzug war das alles kein großes Problem.

Snom-IP Telefon an der FritzBox anmelden

Ich habe mit meiner FritzBox zwar mehrere schnurlose FritzFons verbunden, aber ganz wollte ich auch jetzt auf den Komfort eines richtigen, kabelgebundenen Telefons nicht verzichten. Meine Wahl fiel auf eine Snom 300, das man bei EBay schon um die 30 EUR herum bekommt. Die folgende Anleitung funktioniert aber auch bei ähnlichen Snom-Telefonen.

Die Konfiguration des Telefons an der FritzBox ist zwar relativ einfach, allerdings muss man hier wissen, was man wo und wie einstellen muss.

Zunächst muss man in der FritzBox ein neues Telefonie-Gerät anlegen – Typ ist hier IP-Telefon.

Wichtig sind hier der Benutzername und das Kennwort. Die Anmeldung aus dem Internet sollte man nur dann erlauben, wenn man das auch wirklich braucht. Für ein IP-Telefon hinter der Fritz Box ist das nicht erforderlich und sollte somit aus Sicherheitsgründen deaktiviert bleiben.

Auf der Webkonfig des Snom-Telefons sollte man nun erstmal Allgemeine Dinge wie Sprache, Klingelton, Telefonbuch usw. konfigurieren. Infos hierzu gibt das Snom-Wiki her. Danach geht man auf den Punkt „Idendität 1“ und hinterlegt hier die Daten wie unten im Bild zu sehen.

Im wesentlichen wars das auch schon mit den Einstellungen.

Stellt sich noch die Frage: Warum sollte man hier die Verbindung zur FritzBox aufbauen und nicht direkt zum SIP-Anbieter wie z.B. Sipgate? Nun – relativ einfach: Wenn man noch weitere Telefone an der FritzBox angemeldet hat, meldet sich die Fritz Box beim Anbieter an und es klingeln alle parallel und man kann vom einen Telefon zum anderen intern telefonieren.

macOS – Mauszeiger vergrößern

Ich sehe zwar nicht sonderlich schlecht, aber auf einem hochauflösenden Bildschirm ist der Mauszeiger von macOS schon sehr klein und geht dann gerne mal unter. Es gibt zwar die Hilfe, das man mit einer Art Schüttelbewegung der Maus den Zeiger kurz größer erscheinen lässt, aber etwas größer wäre er manchmal gut.

Unter Windows findet man die Einstellung bei der Maus, wo man sie aber beim Mac vermisst.

Beim Mac ist sie in den Bedienungshilfen versteckt. Da aber nicht im Punkt „Maus“, wo man sie vermuten würde, sondern unter „Anzeige“. Einfach die Cursor-Größe etwas nach oben drehen. Keine Angst, der Mauszeiger wird dadurch nicht pixelig – er wird ganz sauber groß skaliert. Das gleiche gilt für Standard-Zeiger wie z.B. die Hand. Einige wenige wie z.B. das Fadenkreuz sehen etwas komisch aus. Aber dafür ist der Zeiger jetzt nicht mehr so winzig.

Probiere es mal aus!