Homepage von Basti1012 = ,Hauptmenü
Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung

Das WordPress-Logo. (Foto: 360b / Shutterstock.com)

Automatische WordPress-Updates sind seit langem etabliert. Ab August 2020 sollen sich auch Themes und Plugins automatisch updaten.

WordPress ist als meist genutztes CMS der Welt auch eines der bei Hackern am beliebtesten. In kaum einem anderen Produkt wird mit soviel Elan nach Schwachstellen gesucht wie bei der ehemaligen Blog-Software des Hauses Automattic.

Schon seit Jahren ist das Kernsystem daher in der Lage, sich automatisch zu aktualisieren, sodass entdeckte Sicherheitslücken zeitnah geschlossen werden, ohne dass es auf die Motivation und das Know-how des Seitenbetreibers ankommt.

Auto-Updates. (Screenshot: WordPress-Team)

Auto-Updates kommen ab August in WordPress 5.5

Voraussichtlich ab August 2020 soll WordPress mit der Erweiterung ?Auto-Updates? ausgestattet werden, die es erlaubt, auch die anfälligen Aufsätze zum System, die Themes und Plugins, automatisch auf einem aktuellen Stand zu halten.

Zwar sind Themes vornehmlich Gestaltungsvorlagen für das spätere Aussehen der Website, dennoch müssen sie zwangsläufig Code enthalten, der im Zweifel missbraucht werden kann. Noch anfälliger sind Plugins, die kleinen Tools, mit deren Hilfe ein WordPress um nahezu jedwede Funktionalität erweitert werden kann.

Auto-Updates steht als Beta bereits zur Verfügung

Die Erweiterung ?Auto-Updates? kann bereits als Beta heruntergeladen und eingesetzt werden. Das WordPress-Team empfiehlt den Einsatz in Produktivumgebungen allerdings derzeit noch nicht. Läuft alles nach Plan, soll die Erweiterung mit WordPress 5.5. eingeführt werden.

Einmal im Einsatz erledigt ?Auto-Updates? zweierlei. Zum einen überwacht es den Versionsstatus der eingesetzten Themes und Plugins und macht zum anderen mit einer auffälligen Meldung auf verfügbare Updates aufmerksam. Schaltet der Nutzer die Update-Automatik ein, wird aus der auffälligen Meldung ein automatischer Prozess. Der Zustand der Installation lässt sich dabei im Backend im Blick behalten.

Auto-Updates. (Screenshot: WordPress-Team)

Haken: Ohne Updates kein Auto-Update

Das klingt alles sehr gut, hat aber einen Haken. Der besteht darin, dass Auto-Updates nur Updates automatisieren kann, die es auch gibt. Damit bleiben Nutzer von Themes und Plugins weiterhin auf die Entwickler dieser Module angewiesen. Stellen die keine Updates bereit, nutzt Auto-Updates nichts.

Passend dazu: 10 unverzichtbare WordPress-Plugins



PHP 7 Migration

Nun war es also Zeit, diesen beschaulichen Server auf PHP7 zu heben.

Die Installation

… lief straight forward, wie man es gewohnt ist. Hier läuft ein Apache 2 mit mod_php auf (aktuell) Ubuntu 15.04, also das absolute Standardsetup. Da PHP7 standardmäßig noch nicht in ubuntu enthalten ist, müssen wir vom ppa von ondrej Gebrauch machen, welches sowohl PHP5.6 als auch PHP7 beinhaltet und regelmäßig aktualisiert wird.

apt-get -y purge php5 libapache2-mod-php5 php5 php5-cli php5-common
apt-get --purge autoremove
apt-get update
apt-get install python-software-properties
add-apt-repository ppa:ondrej/php-7.0
sudo apt-get install php7.0 php7.0-dev php7.0-mysql php7.0-gd php7.0-curl php7.0-sqlite php7.0-intl
php -v
service apache2 restart

Läuft, bei mir folgende Ausgabe:

PHP 7.0.1-4+deb.sury.org~vivid+1 (cli) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

Probleme & Fallstricke

Imagemagick

Da es noch kein php7.0-imagemagick gibt, war eine händische Installation nötig:

apt-get install imagemagick
cd /tmp
wget http://pecl.php.net/get/imagick-3.4.0RC2.tgz
tar xvzf imagick-3.4.0RC2.tgz
cd imagick-3.4.0RC2
phpize
./configure
make install
echo extension=imagick.so >> /etc/php/7.0/cli/php.ini
echo extension=imagick.so > /etc/php/7.0/apache2/conf.d/20-imagick.ini
service apache2 restart

mcrypt

Ursprünglich habe ich php7.0-mcrypt mitinstalliert, welches sich dann per Warning geäußert hat, dass es bereits geladen wurde.

Module 'mcrypt' already loaded in Unknown on line 0

Die Migration

WordPress 4.4 verträgt sich gut mit PHP7, zumindest gilt das für den Core. 2 Probleme gab es bei den Plugins:

w3 total cache (aktuell in Version 0.9.4.1) schmeißt einen Haufen Warnings und Fehler, sodass ich es erstmal deaktiviert habe.

Nicht so einfach gestaltete sich das zweite problematische Plugin CodeColorer, welches ich für das Syntax Highlighting verwende. Da es seit über 2 Jahren nicht mehr angepasst wurde, ist eine PHP7 Kompatibilität auch nicht direkt zu erwarten gewesen. Problem: Der /e Modifier in preg_replace ist seit PHP5.5 deprecated.

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in ...

Also frisch ans Werk und alle preg_replace-Vorkommen mit dem /e modifier auf das nun zu verwendende Callback-Format umgestellt:

Alt:

$content = preg_replace('#(\s*)(\[enlighter[^\s\]_]*(?:_[^\s\]]*)?[^\]]*\].*?\[/enlighter\1\])(\s*)#sie', '$this->PerformProtectComment(\'\\2\', $content, \'\\1\', \'\\3\');', $content);

Neu:

$content = preg_replace_callback('#(\s*)(\[enlighter[^\s\]_]*(?:_[^\s\]]*)?[^\]]*\].*?\[/enlighter\1\])(\s*)#si', function($matches)
{
	return $this->PerformProtectComment($matches[2], $content, $matches[1], $matches[3]);
}, $content);	

Relevante Änderungen in PHP7

Ich habe die relevantesten Änderungen in PHP7 in Präsentationsform für meine Lehrveranstaltung „Entwicklung webbasierter Anwendungen“ an der Hochschule Darmstadt zusammengefasst. Die Präsentation darf gerne verwendet werden (auf Anfrage schicke ich auch gerne die ppt).

Für mich sind das:

An weggefallenen oder nun veralteten Dingen ist eigentlich nichts von großer praktischer Relevanz.

Ganz lustig ist der „rant“ über das neue „division by zero“ Verhalten. Seit PHP7 ist das Ergebnis beim Teilen durch 0 „INF“ bzw. „-INF“. Eine Warning gibt es zusätzlich noch, vor PHP7 kam als Ergebnis „false“ heraus. Nach IEEE754 stellt sich die Sache aber nicht ganz so einfach dar. Da es die Warning nach wie vor gibt, sollte auch diese Umstellung keine großen Probleme verursachen.

In closing

Auf Arbeit fahren wir einen Multi PHP-Ansatz, um mehrere PHP Versionen mit Fast CGI parallel laufen zu lassen. Das ist sehr praktisch für eine schrittweise Migration. Symfony ist ja auch schon seit geraumer Zeit voll PHP7-fähig. Allein aus Gründen des gesunkenen Speicherverbrauchs und der besseren Laufzeitperformance ist man ja quasi schon zum Update gezwungen ;-).

Umwetter Warnumgen und Wetter vorschau