Das Putzlowitsch Test- und SEO-Blog
Thema: Installation

Strato-AppWizard verhindert WordPress-Update, so geht es trotzdem

WordPress mit wenigen Klicks installieren

Sie sind ja ganz nett, diese Ein-Klick-Installationen bei den großen Webhostern wie 1&1 (Click&Build), Host Europe (Webanwendungen) und Strato (AppWizard). Mit wenigen Klicks kann man im Konfigurationsbereich des Hostingpaketes ein komplettes WordPress installieren. Man muß sich nicht um die Einrichtung von Datenbanken, die Anpassung der wp-config.php-Datei und den Upload per FTP kümmern.

Leider haben diese Installationen auch Nachteile. Bei Strato soll man das WP-Update per AppWizard durchführen. Schlecht ist es nur, wenn gar kein Update oder nur die kleinen Updates angeboten werden.

Strato AppWizard WP-Update

Für die älteren Versionen gibt es nur die kleinen Updates (3.0→3.0.4, 3.5.1→3.5.2) und bei 3.8 sieht es ganz schlecht aus. Vermutlich ist auch gar kein Updated er Hauptversion, also z.B. von 3.8 auf 3.9 oder 4.0 vorgesehen.

Kein Update möglich

Normalerweise ist es ja kein Problem, das Update direkt im Adminbereich von WordPress durchzuführen. Nur leider wird diese Möglichkeit von den 1-Klick-Paketen schlicht und ergreifend ausgeknipst, ist nicht vorhanden.

Strato-AppWizard - kein WP-Update

Nun habe ich mich auf die Suche begeben, an welcher Stelle denn das Update wegkonfiguriert wird. Fündig wurde ich in der Datei wp-includes/capabilities.php. Dort gibt es Funktionen mit denen Abgefragt werden kann, welche Rechte ein angemeldeter Nutzer hat, also was er alles im Adminbereich tun darf.

So sieht dort eine Funktion im StratoAppWizard-Paket aus:

function current_user_can( $capability ) {
	$current_user = wp_get_current_user();

	if ( empty( $current_user ) )
		return false;

	$args = array_slice( func_get_args(), 1 );
	$args = array_merge( array( $capability ), $args );

	if ( $capability == 'update_core' ) { return false;	} else { return call_user_func_array( array( $current_user, 'has_cap' ), $args ); }
}

Die Frage, ob der aktuelle Nutzer WordPress updaten darf (‚update_core‘), wird in der letzten Zeile immer mit false beantwortet. Es darf als niemand, es wird gar nicht erst geprüft, ab man als Admin dieses Recht hat. Nö, die Funktion sagt immer nein.

WP-Update wieder hervorzaubern

Entsprechend simpel ist die Lösung des Update-Problems. Man muß einfach die originale Funktion wieder herstellen. Das geht einfach mit einem FTP-Programme oder auch mit dem Strato Web-FTP.

Wir wechseln in das Verzeichnis /WordPress_01/wp-includes/, wobei die Nummer am Ende die laufende Nummer der AppWizard-Installation ist.

Strato Web-FTP capabilities.php

Dort finden wir die Datei capabilities.php und direkt darunter eine capabilities.php.bak.1387242074, ggf. mit einer anderen Zahl am Ende. Das ist die nicht manipulierte, originale WordPress-Datei. Genau die brauchen wir.

Nun können wir einfach zuerst die capabilities.php in capabilities.php.strato umbenennen und anschließen die capabilities.php.bak.1387242074 in capabilities.php.

Das Umbenennen geht im Strato-WebFTP mit der rechten Maustaste auf der Datei.

Strato Web-FTP - Datzei umbenennen

Das wars auch schon, im Adminbereich sollte nun das Update auf die neue WP-Version angeboten werden.

Getestet habe ich das nur mit der Version 3.8, bei den älteren Versionen könntes aber prinzipiell genauso funktionieren.

WP Version 3.2.x und 3.4.x

Bei WordPress Version 3.2.x und 3.4.x hat Strato das Core-Update an einer anderen Stelle ausgeschaltet (Veränderung in der Datei /wp-include/update.php). Es wäre aber zu aufwändig, diese Änderungen rückgängig zu machen.

Strato AppWizard WP-Update 3.5.1

Als Ausweg bleibt hier das schrittweise Update im Strato-AppWizard bis zur WordPress-Version 3.5.1-4. Bei dieser Version ist das Update nicht gesperrt und damit dann direkt im WP-Backend möglich.

Strato auf die Sprünge helfen

Es ist ja nun nicht das erste Mal, daß ich eine Strato-Problem bzw. -Fehler ausbügeln muß. Wenn ich da so an das www/ohne-www Problem oder die Sache mit der Remote-Adresse denke. Das früher fehlende mod_rewrite will ich gar nicht erst an die große Glocke hängen.

Wie auch immer, ich hoffe, daß ich dem einen oder anderen leidgeplagten Strato-User ein bißchen helfen konnte. Dann hat es sich doch schon gelohnt. :-)

37 Kommentare »

WordPress Update von 3.3.1 auf 3.4

Seit gestern gibt es die neue WordPress-Version 3.4 „Green“, praktisch zeitgleich auch als DE-Ausgabe.

Gestaltung

Wordpress 3.4 - Customize

Eine neue Funktion ist die Anpassung von Themes in einer Art Vorschaumodus. Man kann damit im Backend unbeschwert z.B. das Headerbild und die Farben ändern und erst, wenn einem alles gefällt, die Einstellungen übernehmen. Bisher wurden solche Änderungen sofort wirksam, was möglicherweise zu Verwirrung bei den Nutzern führen konnte. Das Theme muß entsprechende Funktionen allerdings unterstützen.

Auch wenn man mit diesem neuen Feature alle Farben auf Grün stellen kann, hat der Name „Green“ der neuen WP-Version nichts damit zu tun. Vielmehr ist die aktuelle Ausgabe dem Jazz-Gitarrist Grant Green gewidmet.

Gezwitscher

Außerdem kann man jetzt Twitter-Tweets direkt in einen Artikel einbinden. Dazu muß einfach die URL des Tweets in den Text eingefügt werden, WordPress kümmert sich dann um die eingebettete Darstellung:

In der U7 liest eine Mutter...

Dazu muß bei den Einstellungen zur Mediathek die Option „Automatische Einbettungen“ aktiviert sein. Alternativ kann man die URL mit dem Shortcode [oembed]…[/oembed] umschließen. Da das oEmbed hier irgendwie nicht funktioniert, habe ich es durch einen Screenshot simuliert.

Gelungen

Ich habe heute zwei Blogs per automatischem Update auf die neue WordPress-Version 3.4 aktualisiert. Einmal ein Testblog bei 1&1 (mit nur 32M PHP-Speicher) und mein Schnurpsel-Blog hier (bei Strato). Das hat in beiden Fällen ohne Probleme und einwandfrei funktioniert.

Der Speicherverbrauch ist leicht gestiegen, im Frontend um 0,5M und im Backend im 1M.

Laut Beschreibung der Veränderungen und Verbesserungen gab es auch ein paar Optimierungen unter der Haube, besonders im Bereich Übersetzung/Lokalisierung und beim WP-Query-Objekt. Für Programmierer con Themes und Plugins gabe es auch Veränderungen, aber davon wird der Nur-Nutzer sowieso nichts merken.

7 Kommentare »

WordPress Update von 2.9.2 auf 3.2.1

Wordpress 3.2.1 - Backend (Admin-Bereich)

Großer Versionssprung

Mein letztes WordPress-Update liegt schon länger zurück (April 2010). Nun habe ich kurz entschlossen gleich den Sprung von Version 2.9.2 auf 3.2.1 gewagt. Allerdings nicht mit dem WP-eigenen Onlineupdate, sondern gewissermaßen „zu Fuß“. Bei großen Versionssprüngen ist mir das sicherer, man weiß ja nicht, ob alle Plugins und das Theme noch unter der neuen Version funktionieren.

Nur kleine Panne

Das Update lief auch problemlos durch, allerdings war dann plötzlich meine Startseite nicht mehr erreichbar (Fehler 404). Das Problem kam durch eine eigene Erweiterung zustande, in der der ich URL-Parameter und numerische Werte überprüfe. Neuerdings erzeugt WordPress für die Startseite intern die leeren Parameter pagename und page, welche ich nun als Sonderfalll bei der Prüfung berücksichtige.

Neue Funktionen und Verbesserungen

Mit den neuen Funktionen und Möglichkeiten werde ich mich erst in den nächsten Tagen beschäftigen. Aber so auf den ersten Blick sieht alles schon ganz gut aus. Angeblich soll WP 3.2.x auch schneller sein, man wird sehen. Mit knapp 17 MB auf der Startseite und 19 MB im Adminbereich ist zumindest der Speicherbedarf nicht gestiegen. Ich habe die alten Werte jetzt nicht im Kopf, aber es könnte sogar etwas weniger sein, als bei WP 2.9.x.

1 Kommentar »

WordPress 3.0 – automatisches Update bei 1&1 ohne Problem

Das neue WordPress 3.0 ist erschienen. Herausragende Neuerung ist die neue Multisite-Funktion, gewissermaßen die Integration von WordPress-MU in das „normale“ WordPress. Zudem gab es den Abschied vom lange bewährten Standard-Theme „Kubrick“. Neu als Standardtheme ist nun „TwentyTen“ an Board.

Brötchen mit WP 3.0 RC als Test

Seit ein paar Wochen habe ich die RC-Versionen von WordPress 3.0 bereits für meine Brötchen-Bilder im Testbetrieb zu laufen. Dabei gab es keine Probleme.

Für meine „Produktions-Systeme“ Putzlowitsch und Schnurpsel will ich aber nicht gleich auf WP 3.0 umsteigen, das ist mir zu heikel. Da stehen zunächst lokale Tests an.

Automatisches Update bei 1&1 erfolgreich

Mit einer WordPress 2.9.1 Testinstallation bei 1&1 habe ich hingegen gleich mal ein automatisches Update angestoßen. Das hat einwandfrei funktioniert. Allerdings habe ich dort nur eine handvoll einfacher Plugins aus eigenem Hause installiert. Insofern ist das kein echter Produktionstest.

Der (angezeigte) Speicherbedarf ist von 11,5 auf 13,5 MB im Frontend und von 14 auf 16,5 MB im Backend angestiegen, mithin also um 2 bzw. 2,5 MB. Insgesamt kommt man mit den 32 MB, die bei 1&1 zur Verfügung stehen, noch ganz gut über die Runden. Eng kann es bei gleichzeitigen Einsatz vieler Plugin oder bei Upload großer Bilder werde.

Generell sollte man für WordPress bei 1&1 (Shared Webhosting) einige Dinge beachten.

1 Kommentar »

Ein nacktes WordPress installieren

WordPress-Installation

Eine neue WordPressinstallation enthält üblicherweise bereits ein paar Beispieldaten. So sind schon eine Seite und ein Artikel mit einem Kommentar vorhanden, etwa wie dieser hier. Die Blogrolle ist auch schon mit ein paar Links gefüllt.

Wenn man das nicht möchte, weil man beispielsweise einen WordPress-Export (per WP-Export als xml) importieren möchte und die IDs der Artikel und Seiten erhalten bleiben sollen, kann man eine benutzerdefinierte Installation verwenden.

WordPress lädt am Anfang der Installation die Datei wp-content/install.php, falls sie vorhanden ist. In dieser kann man einige Installationsfunktionen „überschreiben“. Das funktioniert so wie bei den Funktionen aus der pluggable.php im Verzeichnis wp-includes. WordPress prüft, ob eine Funktion bereits vorhanden ist:

if ( !function_exists('wp_install') ) :
 ...
endif;

Falls nicht, wird die WordPress-Funktion „installiert“, andernfalls wird die bereits vorhandene verwendet. Die wordpresseigenen Installationsfunktionen findet man in wp-admin/includes/upgrade.php, diese kann man sich als Vorlage für eigene Modifikationen hernehmen.

WordPress ohne „Hallo Welt“

Um nun eine leere WordPress-Installation zu erhalten, wird die Funktion wp_install_defaults in der Datei wp-content/install.php neu definiert:

<?php
function wp_install_defaults($user_id) {
}
?>

Es ist einfach eine leere Funktion, dadurch wird aber auch keine Default-Kategorie für Artikel und Links erstellt. Möchte man die Standardkategorien trotzdem haben, nimmt man den oberen Teil aus der originalen WP-Funktion (bis // Now drop in some default links) in die eigene Funktion mit rein. Dabei das global $wpdb nicht vergessen.

Wie man auf diese Weise bereits Plugins bei der Installation aktivieren kann, hatte ich früher schon mal beschrieben.

Nachdem die Anpassungen in der install.php vorgenommen wurden und diese in das WordPress-Content-Verzeichnis kopiert wurde, kann man die WordPressinstallation wie gewohnt starten.

0 Kommentare »

WordPress beim 1&1 Webhosting (1&1 Homepage)

In den aktuellen 1&1 Webhosting-Paketen „1&1 Homepage Perfect“, „1&1 Homepage Business“ und „1&1 Homepage Business Pro“ hat man neben der Nutzung eines 1&1-Fertigblogs auch die Möglichkeit, ein eigenes WordPress zu installieren. Mindestens eine MySQL-Datenbank und PHP können in diesen Hostingpaketen genutzt werden.

Damit das selbstinstallierten WordPress auch ordentlich funktioniert, sind einige Dinge zu beachten, die ich nachfolgend erkläre. In vielen Fällen verweise ich auf die 1&1-FAQ, da dort einzelne Schritte gut beschrieben sind.

Vorbereitung der Installation – Datenbank

Zunächst muß, falls nicht schon geschehen, eine neue MySQL 5 Datenbank angelegt werden. Wichtig sind hier die Daten, welche später in die Datei wp-config.php eingetragen werden müssen (Beispiele):

define('DB_NAME', 'db123456789');
define('DB_USER', 'dbo123456789')
define('DB_PASSWORD', 'rh473256');
define('DB_HOST', 'db1234.1und1.de');

Auf den ersten Blick sehen DB_NAME und DB_USER gleich aus, sind sie aber nicht. Beim User steht zwischen ‚db‘ und der Zahl ein kleines o (für Owner?). Zudem ist der Datenbank-Host eben nicht ‚localhost‘, sondern der nach dem Anlegen der Datenbank in der Übersicht angezeigte dbxxxx.1und1.de.

Vorbereitung der Installation – WordPress-Installationspaket

Die aktuelle deutsche WordPress-Version kann man sich hier herunterladen. In der Installationsanleitung werden als nächste Schritte das Entpacken der ZIP-Datei, Editieren der wp-config.php und das Hochladen aller Dateien per FTP genannt. Für 1&1 empfehle ich eine leicht veränderten, weil schnelleren Weg, der ohne zusätzliches FTP-Programm auskommt.

Mit dem 1&1-WebspaceExplorer wird die wordpress.zip-Datei, so wie sie ist, hochgeladen. Anschließend wird sie direkt auf dem Server entpackt. Beim Entpacken entsteht ein Verzeichnis wordpress, welches man nach eigenen Wünschen umbenennen kann.

Nun holt man sich per Download aus diesem Verzeichnis die wp-config-sample.php auf den Rechner, bennent sie in wp-config.php um, trägt die Konfigurationsdaten ein und lädt sie mit dem WebspaceExplorer in das WordPress-Verzeichnis auf dem Server.

Umstellung auf PHP 5

(nicht erforderlich bei den neuen Paketen SmartWeb L und Dual-Hosting!)
An erster Stelle ist die Umstellung auf PHP5 zu nennen. Mit PHP4 gibt es besonders im WordPress-Backend Probleme, beispielsweise beim Hochladen von Bildern über die Medienverwaltung. Wie man bei 1&1 erreichen kann, daß alle PHP-Skripte mit PHP 5 ausgeführt werden, ist auch in den 1&1-FAQ beschrieben. Man erstellt eine Datei .htaccess oder ergänzt eine bereits vorhandene Datei mit folgenden Zeilen:

AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php

Diese Datei kopiert man per FTP oder mit dem 1&1-WebspaceExplorer in das Wurzelverzeichnis der Webpräsenz

WordPress installieren

Nun kann man die WordPress-Installation wie in der Dokumentation beschrieben starten:

http://wp-example.net/wp-admin/install.php

Maximal nutzbarer PHP-Speicher (memory_limit) 32M

Auch wenn für den PHP-Speicher bei 1und1 40M angezeigt werden, so sind doch nur effektiv 32M nutzbar. Deshalb kann durchaus folgende Fehlermeldung auftreten:

Fatal error: Out of memory (allocated 33030144)
(tried to allocate 4600 bytes) in …

Das ist etwas anderes als:

Fatal error: Allowed memory size of 33554432 bytes exhausted
(tried to allocate 4650 bytes) in …

Der Fehler kann z.B. beim automatischen Update von WordPress vorkommen, obwohl WP intern das Speicherlimit auf 256M hochsetzt und das auch so angezeigt wird. Aber egal wie hoch man den Parameter memory_limit konfiguriert, es gibt bei 1&1 derzeit die Grenze bei 32 MB. Hier hilft nur, während des Updates den Speicherverbrauch zu reduzieren, indem man beispielsweise alle Plugins vorher deaktiviert und danach wieder aktiviert.

Auf eine Supportanfrage bei 1&1 bezüglich der 32M-Speichergrenze bekam ich folgende Antwort:

Effektiv liegt das von Ihnen nutzbare Speicherlimit bei 32 MB, da ein Teil der Ressourcen für die Ausführung von PHP selbst benötigt wird.

Nun ja, wirklich glauben kann ich das nicht.

Nachtrag:
Es gibt jetzt eine 1&1-Hilfe-Seite, die die Skript-Limits für die einzelnen alten und aktuellen Hostingpakete auflistet.
Bei den neuen 1&1-Dual-Tarife ist PHP5 standardmäßig aktiv und es gelten folgende Limits:

Memory Limit Scriptlaufzeit Anzahl Prozesse
Smart Web L 32 MB 10 Sec. 5
Dual Basic 60 MB 20 Sec. 10
Dual Perfect 60 MB 30 Sec. 15
Dual Advanced 80 MB 40 Sec. 15
Dual Unlimited 80 MB 60 Sec. 20

Bei den 1&1-Tarifen (ab Oktober 2013) gelten folgende Limits:

Memory Limit Scriptlaufzeit Anzahl Prozesse
Starter 30 MB 20 Sec. 10
Basic 60 MB 20 Sec. 10
Unlimited 80 MB 40 Sec. 15
Unlimited Plus 128 MB 60 Sec. 16
Unlimited Plus (4GB) 256 MB 60 Sec. 16

Bei den neuen 1&1-Tarifen (ab 2015) gelten folgende Limits:

Memory Limit Scriptlaufzeit Anzahl Prozesse
Starter 30 MB 20 Sec. 10
Unlimited 60 MB 20 Sec. 10
Unlimited Plus 80 MB 40 Sec. 15
Unlimited Pro 128 MB 60 Sec. 16

Hinweis: Das Speicher-Limit gilt für einen gestarteten Prozess. Es steht deshalb als PHP-Speicher weniger zur Verfügung, als hier in der Tabelle steht. Von den 60M im Paket Basic sind effektiv ca 55M als PHP-Speicher nutzbar.

PHP-Speichertest-Skript: Memory-Test PHP-Skript

27 Kommentare »

WordPress Update auf 2.8.5

Heute habe ich hier auf die neue Version WordPress 2.8.5 per automatischem Update upgedated oder geupdated. Dies neue Version ist ein Sicherheitsupdate und behebt ein Problem, durch das eine Denial-of-Service-Atacke durch die Trackback-Funktion möglich ist. Zudem gibt weitere, kleinere Korrekturen.

Problem bei geänderten Verzeichnissen

Das automatische Update im Adminbereich hat technisch gesehen fehlerlos funktioniert. Allerdings ist mir dabei auch ein kleines Problem aufgefallen, welches dann entstehen kann, wenn man nicht das standardmäßig voreingestellte WP-Contentverzeichnis (wp-content) bzw. ein anderes Pluginverzeichnis (wp-content/plugins) konfiguriert hat. Die Vorgaben können durch entsprechende Konstantendefinitionen z.B.:

defined('PLUGINDIR','my-plugins');

in der Datei wp-config.php verändert werden.

Beim automatischen Updateprozeß werden aber die neuen Dateien aus der heruntergeladenen nur in die Standardverzeichnisse entpackt. Von einer veränderten Verzeichniskonfiguration wären dann die Standardplugins (Askimet) und die Standard-Themes (Default und Classic) sowie die Sprachdateien betroffen. Diese werden vom Update nicht aktualisiert und müssen anschließend noch manuell in die richtigen Verzeichnisse verschoben werden.

0 Kommentare »