Wordpress Entwicklungsumgebung
Veröffentlicht von Stefan Seufert am Fr, 18.12.2009Neben dem “Live-Blog” betreibe ich auf meinem PC eine Entwicklungssystem in einer XAMPP-Umgebung, um beispielsweise neue Plugins entwicklen und testen zu können. Zur Versionierung der aktuellen Softwarestände findet Tortoise SVN Verwendung.
1. Datenbank exportieren/importieren
Um im Testsystem mit der aktuellen Live-Datenbank arbeiten zu können, muss ein Backup der Datenbank des Livesystem exportiert, sowie im zweiten Schritt in das Testsystem importiert werden. Diese Arbeiten können mit phpMyAdmin erledigt werden – ich verwende für diese Schritte das Wordpress Plugin WP-DB-Backup von filosofo.
2. Datenbank anpassen
Da Wordpress in der Datenbank (wp_options) Informationen zur URL des Blocks hinterlegt, müssen nach dem Import der “Fremddatenbank” Veränderungen an dieser vorgenommen werden. Zur komfortablen Erfüllung dieser Aufgabe habe ich ein kleines Skript erstellt, welches die Manipulationen an der Datenbank vornimmt:
Erstellen Sie folgende Datei “update-db.php” im Verzeichnis “wp-admin”:
<?php
/** Load WordPress Bootstrap */
require_once(dirname(dirname(__FILE__)) . '/wp-load.php');
/** Load WordPress Administration Upgrade API */
require_once(dirname(__FILE__) . '/includes/upgrade.php');
//
$str_url = ($_SERVER['HTTPS'] != "" ? "https://" : "http://").$_SERVER['HTTP_HOST'].str_replace("wp-admin/update-db.php", "", $_SERVER['PHP_SELF']);
update_option('siteurl', $str_url);
update_option('home', $str_url);
//
$str_upload_pfad = str_replace("wp-admin/update-db.php", "", $_SERVER['SCRIPT_FILENAME'])."wp-content/uploads";
update_option('upload_path', $str_upload_pfad);
?>
Code-Erläuterungen:
Zeilen 4-7: Zum Update der Felder können wir natürlich auf die Wordpress-Funktionen zurückgreifen – diese binden wir in diesen Zeilen in das Script ein.
Zeilen 10-12: Die Werte für “site_url” und “home” werden ermittelt und in der Datenbank geschrieben.
Zeilen 15-16: Der Wert für “upload_path” wird ermittelt und in die Datenbank geschrieben.
Nachdem die Datei erstellt wurde, kann diese über die URL “http://Domain-oder-Entwicklungshost/wp-admin/update-db.php” im Browser aufgerufen werden – nach der Ausführung des Scripts erfolgt keinerlei Ausgabe.
3. Anpassung der Datei “wp-config.php”
Die Zugangsdaten zur Datenbank des Live-Systems sind meist andere, als die lokalen. Nachdem Sie in der Datei “wp-config.php” die folgenden Code-Zeilen eingebaut haben, können Sie diese in beiden Systemen verwenden – die nötigen Zugangsdaten werden anhand der URL des aufgerufenen Systems (hier “http://entwicklung/linkjuice”) ermittelt.
<?php
// ** MySQL Einstellungen ** //
$str_host = $_SERVER["SERVER_NAME"];
if (strtolower($str_host) == "entwicklung")
{
define('DB_NAME', 'db_entwicklung'); // Ersetze ssfxx_linkjuice mit dem Namen der Datenbank, die du benutzt.
define('DB_USER', 'root'); // Ersetze usernamehere mit deinem MySQL-Datenbank-Benutzernamen.
define('DB_PASSWORD', ''); // Ersetze yourpasswordhere mit deinem MySQL-Passwort.
define('DB_HOST', 'localhost'); // In 99% der Fälle musst du hier nichts ändern. Falls doch ersetze localhost mit der MySQL-Serveradresse.
define('DB_CHARSET', 'utf8'); // Der Datenbankzeichensatz sollte nicht geändert werden
define('DB_COLLATE', '');
}
else
{
define('DB_NAME', 'db_live'); // Ersetze ssfxx_linkjuice mit dem Namen der Datenbank, die du benutzt.
define('DB_USER', ''); // Ersetze usernamehere mit deinem MySQL-Datenbank-Benutzernamen.
define('DB_PASSWORD', ''); // Ersetze yourpasswordhere mit deinem MySQL-Passwort.
define('DB_HOST', 'localhost'); // In 99% der Fälle musst du hier nichts ändern. Falls doch ersetze localhost mit der MySQL-Serveradresse.
define('DB_CHARSET', 'utf8'); // Der Datenbankzeichensatz sollte nicht geändert werden
define('DB_COLLATE', '');
}
?>
4. Mögliche Probleme
mod_rewrite (500 Fehler)
Die nötigen Einstellungen können unter “Einstellungen/Permalinks” vorgenommen werden.
Darstellung von Umlauten
Die beiden Datenbanksystem sollten das gleiche “charset”, möglichst “UTF-8″ verwenden.
Verlinkung auf Dateien
Wenn Mediendateien über “absolute Pfade” verlinkt wurden, müssen diese Links an die neue URL des Systems angepasst werden.
