Blog-Datenbank auf Web und Localhost

Wie kann man sich einen Testblog auf dem Localhost erstellen?

Es gibt einige Dinge zu beachten, wenn man seinen Blog sowohl im Netz als auch zu Hause auf seinem LOCALHOST installiert. Aber warum sollten Sie das überhaupt tun?

Sicherlich ist es sinnvoll, sowohl die Quelldateien des/der Blogs als auch die Datenbank(en) des/der Blogs auch auf dem heimischen Rechner zu halten. Wer sagt denn, dass auch dem verfügbarsten Hoster nicht ein Missgeschick passieren kann? Oder dass Sie immer alle Plugins richtig im Web installieren und sich nichts überschreiben?
Schnell ist bei FileZilla auf der Webseite ein Verzeichnis nicht richtig ausgewählt und beim Hochladen alles überschrieben!

Sicherheit

Datensicherheit bedeutet für Sie, dass Sie dazu in der Lage sein sollten, zu jeder Zeit Ihren evtl. zerstörten Blog immer wieder aufbauen zu können! Sie könnten sich auf dem Webspace natürlich ein 2. Sicherungsverzeichnis anlegen und dort alle Quelldateien des Blogs hinlegen. Aber warum eigentlich? Ist es nicht viel sicherer, wenn Sie auf Ihrem Rechner die Blogquellcodes halten? Geht bspw. die Platte des Webspaces kaputt und ist vom Hoster nicht mehr rückspeicherbar, dann läuft Ihre Platte immer noch.

Wenn Sie nun alle Quellprogramme auf Ihrem Rechner haben, dann können Sie einfach mit FileZilla die Web-Platte neu beladen und bekommen keine grauen Haare!
Gleiches gilt für die Datenbank. Eine Kopie der Datenbank auf Ihrem Rechner und Sie sind auf der sicheren Seite. (Vgl. Datenbanksicherung mit nur 4 Klicks aus dem Desktop)

Es gibt zwar im WordPress eine Funktion zum Hochladen von Plugins direkt auf Ihren Webspace. Doch haben Sie dabei eine Sicherung? Nein! Ich kann Ihnen nur raten, dass Sie wie früher Ihre Plugins in das Verzeichnis wp-content/plugins auf Ihrem Rechner herunterladen. Das Plugin dann mit FileZilla hochladen und in das richtige Verzeichnis des Blogs im Web laden. Warum?

  1. Sie haben eine Sicherung des Plugins auch auf Ihrer Festplatte.
  2. Nicht mehr benötigte Plugins führen Sie auf der Festplatte und nicht im Web, das verringert den Speicherplatz im Web.
  3. Alte Versionen von Plugins haben Sie auf der Festplatte vorrätig, falls die neue Version des Plugins fehlerhaft ist

 

Blog und Plugin zuerst testen

Wenn Sie denn schon den Blog bei sich auf der Festplatte liegen haben, warum sollten Sie bestimmte Tests von neuen Plugins oder Themes nicht zuerst auf Ihrem Rechner testen? Dies würde doch den Web-Blog nicht stören! Wenn alles Ok ist, dann laden Sie den veränderten Blog wieder hoch und haben eine neue Version!

Wie aber bekommt man einen Blog auf seinem eigenen Rechner zum Laufen? Das Stichwort dazu ist der LOCALHOST! Das ist ein Server, den Sie sich auf Ihrem Rechner installieren können. Dann können Sie alle Internetseiten zuerst auf Ihrem Host ausprobieren bevor Sie diese freischalten!

Zum Localhost habe ich Ihnen ein eBook erstellt, dass sie gerne hier herunterladen können.

Mit dem Localhost haben Sie nun einen Webserver und können Ihren Blog darin installieren. Doch ganz so einfach ist es nun doch wieder nicht! Die WordPress-Programmierer habe dies nicht vorgesehen. Deshalb sind einige Abstriche zu machen:

Beim Localhost haben Sie ein zentrales Verzeichnis im Server z.B. D:\01_XAMPP\HTDOCS wo Sie alle Dateien einstellen. Sie sollten am Besten für Ihren Blog ein Unterverzeichnis mit dem Namen Ihrer Seite anlegen also hier D:\01_XAMPP\HTDOCS\marketer.blog.sybeklue.de. Hierin speichern Sie alle WordPress Dateien.

Quellcode-Anpassung

Nun können Sie den Blog zwar aufrufen, er wird aber Fehler melden. Denn die Datenbankanbindung ist noch falsch! Damit Sie aber die wp-config.php nicht doppelt halten müssen – einmal für den lokalen Blog und einmal für das Web – sollten Sie eine kleine Modifikation an der wp-config.php vornehmen:(Änderungen in rot)

<?php

/****** Modifiziert für Localhost ******

…..
* @package WordPress
*/
//insert bklue 20100503 — begin
$local = FALSE;
if ($_SERVER[‚SERVER_ADDR‘] == „127.0.0.1“ ) {
$local = TRUE; //localhost
}
//insert bklue 20100503 –end
if(!$local) { //bklue20100503
// ** MySQL Einstellungen WEB** //

define(‚DB_NAME‘, ‚webdb‘); // Namen der Datenbank
define(‚DB_USER‘, ‚webdb‘); // Datenbank-Benutzernamen.
define(‚DB_PASSWORD‘, ‚webdb‘); // MySQL-Passwort.
define(‚DB_HOST‘, ‚webdb‘); // Name des DB-Hosts
define(‚SYBEKLUE_HOSTNAME‘,http://marketer.blog.sybeklue.de‘);
} else { //bklue20100503
// ** MySQL Einstellungen LOCALHOST** //
define(‚DB_NAME‘, ‚wordpress‘); // Ersetze….
define(‚DB_USER‘, ‚root‘); // Ersetze ….
define(‚DB_PASSWORD‘, “); // Ersetze …
define(‚DB_HOST‘, ‚localhost‘); // In 99% …
define(‚SYBEKLUE_HOSTNAME‘,’http://localhost/blog_marketer‘);
}

define(‚DB_CHARSET‘, ‚utf8‘); // Der Datenbankzeichensatz sollte nicht geändert werden

Hier wird nach dem Öffnen der Datenbank in die Tabelle xxx.options die richtige Seite eingestellt mit einem SQL-UPDATE-Befehl!
Jetzt schaltet das Programm selbständig auf die Localhost-Datenbank um, und sie können die Datei wp-config.php sowohl im Web als auch im Localhost fahren.

Datenbank-Anpassung

Wie gesagt die WP-Programmierer sehen nicht vor, dass man den Blog auf dem Localhost fährt! Deshalb wird mit obiger Änderung zwar jetzt die richtige Datenbank geöffnet, es werden aber die falschen Links aufgerufen.

Überhaupt wird das nun mit den Links ein wenig schwierig! Ich weiß nicht, wie Sie Ihre Artikel und Seiten mit einander verlinkt haben. Schreiben Sie im Artikel einen Link wie
<a href=“http://marketer.blog.sybeklue.de/»categorie«/….“>Artikel lesen<a>? Oder verlinken Sie die Artikel mit relativen Links <a href=“/»categorie«/….“>Artikel lesen<a>?

Im 1. Fall der vollständigen URL müssten Sie alle Links in Ihren Seiten oder Artikeln auf „http://localhost/marketer.blog.sybeklue.de“ umstellen, wenn der Blog auf dem Localhost läuft.

Aber auch dann würden Sie noch Fehler erhalten. Denn WordPress holt sich die URL aus der Tabelle xxx_options Feld Option_name = siteurl und dort steht noch die Web-Seite „http://marketer.blog.sybeklue.de“. Diese muss angepasst werden in „http://localhost/marketer.blog.sybeklue.de“ und außerdem aus dem Eintrag in der gleichen Tabelle Feld Option_name = home. Auch dieser Eintrag muss angepasst werden.

Sie könnten sich jetzt hinsetzen und den phpMyAdmin für Ihre Datenbank aufrufen und die beiden Einträge ändern. Damit verlieren Sie aber wieder – wie oben – die Möglichkeit, den Speicherplatz auf Ihrem Localhost auch als Datensicherung zu nutzen. Sie haben ja nun 2 Datenbanken, die unterschiedliche Einträge haben. Auch hiergegen ist ein Kraut gewachsen:

Sie können in der Datei wp-settings.php im Rootverzeichnis des Blogs eine kleine Änderung einspielen, die je nach Startumgebung die richtigen Angaben in die Datenbank speichert.

…..
…..
require_wp_db();

// Set the database table prefix and the format specifiers for database table columns.
wp_set_wpdb_vars();
//klue insert 20110625 begin
if ($_SERVER[‚SERVER_ADDR‘] == „127.0.0.1“ ) {
$wpdb->query(„UPDATE „.$table_prefix.“options SET option_value = ‚“.SYBEKLUE_HOSTNAME.“‚ WHERE option_name=’home‘ „);
$wpdb->query(„UPDATE „.$table_prefix.“options SET option_value = ‚“.SYBEKLUE_HOSTNAME.“‚ WHERE option_name=’siteurl‘ „);
}
//KLUE insert 20110625 END

// Start the WordPress object cache, or an external object cache if the drop-in is present.
wp_start_object_cache();

Jetzt wird bei jedem Start des Blogs geprüft, ob der Blog auf dem Localhost läuft und die richtigen Felder gesetzt. Eine neue im wp-config.php definierte Konstante mit dem Namen SYBEKLUE_HOSTNAME hält die richtigen Werte parat. (Sie sehen in diesem Beispiel auch, dass die Namen zwischen Web und Localhost ganz unterschiedlich sein können)

Wenn Sie allerdings die absolute URL als Links in den Artikeln verwendet haben, dann lässt sich das nicht so leicht ändern, Sie müssen diese Links suchen und am Besten in relative Links ersetzen. Auch dabei kann Ihnen der phpMyAdmin helfen, denn er hat eine Suchfunktion, in der Sie alle „http://«BlogUrl»/ suchen können und diese dann in relative Links ersetzen können.

Es ist nicht so schlimm, wenn Sie Bild-Referenzen mit der Web-Url stehen lassen, dann wird halt das Bild aus dem Web gerufen.

Da die obigen Änderungen Modifikationen des Ursprungs-Quellcodes von WordPress sind, müssen Sie bei neuen Releases diese Änderungen natürlich nachpflegen. Deshalb rate ich Ihnen, dass Sie immer, wenn Sie an den Quellcodes des WordPress etwas ändern, zu nächst diese Datei kopieren und als *-old.php speichern. Dann wissen Sie genau, welche Dateien Sie geändert haben und können bei neuen Releases diese nachpflegen. Sonst geht die große Sucherei los.

Viel Erfolg
Bernd Klüppelberg

Bisher gibt es keinen Kommentar. Schreiben Sie einen Kommentar!

Schreibe einen Kommentar