Anleitungen
« Vorherige BeiträgeWordPress: Revisionen eines Artikels löschen (Historie löschen)
Freitag, 06.08.2010Das CMS “WordPress” stellt Ihnen Ihre alten Versionen der Artikel zur Verfügung. Unter jedem Artikel können Sie im Abschnitt “Revisions” jede (gespeicherte) Änderung des Artikels nachvollziehen und auf Wunsch mit einer anderen Version des Artikels vergleichen lassen.
Diese manchmal recht praktische Funktion kann jedoch auch unerwünscht sein und ggf. Datenbank-Ressourcen belegen. Zugegeben, es sind keine sehr großen Datenmengen – jedoch kann mit der Zeit und entsprechend vielen Artikeln auch hier eine stattliche Anzahl an Datenbankeinträgen zusammen kommen.
Um hier aufzuräumen und diese alten Datensätze endgültig zu löschen, nutzen Sie folgendes SQL Script:
DELETE FROM wp_posts WHERE post_type = 'revision'
Führen Sie den vorherigen SQL Befehl auf Ihrer entsprechenden WordPress Datenbank aus. Dafür können Sie z.Bsp. die kostenlose und Open Source Datenbankverwaltung “phpMyAdmin” nutzen. Achten Sie dabei darauf, dass Sie ggf. den Prefix der Tabelle (hier: “wp_”) anpassen müssen. Das ist jedoch nur dann erforderlich, wenn Sie bei der Installation einen eigenen Prefix gewählt haben. Sollten Sie sich nicht sicher sein, können Sie den SQL Befehl trotzdem ausführen – ist die Tabelle nicht vorhanden, erhalten Sie eine entsprechende Fehlermeldung und keine Daten wurden gelöscht.
Wenn Sie sich zuvor die zu löschenden Daten ansehen möchten, dann hilft Ihnen dieser SQL Befehl weiter:
SELECT * FROM wp_posts WHERE post_type = 'revision'
Outlook 2007: Farbschema wechseln
Mittwoch, 04.08.2010Wenn Sie das Farbschema bei Outlook 2007 von Blau auf Schwarz oder umgedreht wechseln wollen, müssen Sie dazu folgende Schritte durchführen:
- Eine beliebige E-Mail öffnen
- Links oben auf das runde Office-Logo klicken
- Die Schaltfläche “Editor-Optionen” klicken
- Im Reiter “Häufig verwendet” das Farbschema auf “Schwarz” bzw. “Blau” setzen
- Mit “OK” bestätigen
Die eigentliche Schwierigkeit bei der Umstellung des Farbschemas liegt beim finden der entsprechenden Option, da Microsoft diese sehr gut versteckt hat.
PHP: GUID erstellen (flexible Länge und Struktur)
Mittwoch, 28.07.2010Um in PHP eine GUID (Globally Unique Identifier) zu erzeugen (wie Sie sie ggf. aus C# und anderen Programmiersprachen kennen), hilft Ihnen die folgende Funktion weiter:
function getGUID($len = 36) { $tmp = ""; $pos = array(8,13,18,23); while (strlen($tmp) < $len) $tmp .= md5(uniqid()); foreach ($pos as $p) if ($p <= $len) $tmp[$p] = "-"; return substr($tmp,0,$len); }
Ausgabe (Beispiel):
echo getGUID(); 3470b4e8-d6fe-1f76-6c09-0d31828e8a1d echo getGUID(20); 8b31eeb6-b451-a61d-f
Die Lage der Trennzeichen (“-”) können Sie durch das Array “$pos” bestimmen, die Länge der GUID durch den Parameter “$len”. Wenn Sie keinen Parameter übergeben, ist die GUID automatisch 36 Zeichen lang.
Linux: Dateien per SCP ohne Passworteingabe kopieren (SSH)
Samstag, 24.07.2010Wenn Sie automatisch per SCP Dateien kopieren möchten und dabei nicht das Passwort eingeben können oder möchten, dann hilft Ihnen diese Anleitung. Für dieses Beispiel sollen Dateien von Server 1 auf Server 2 kopiert werden:

Für dieses Beispiel gelten folgende Bedingungen:
- Das Script liegt auf Server 2 – die Daten werden von Server 1 “abgeholt”
- Der Benutzer für den Datentransfer heißt “backup”
Vorbereitungen auf Server 1 (Quelle):
- Unter dem Benutzernamen “backup” anmelden oder zum Benutzer wechseln:
su backup - Schlüssel für den automatischen Zugriff von Server 2 erstellen.
Dieser gilt nur für den aktuell angemeldeten Benutzernamen.
ssh-keygen -t dsa
Jede Frage mit “Enter” beantworten und kein Passwort eingeben:
Generating public/private dsa key pair.
Enter file in which to save the key (/home/backup/.ssh/id_dsa):
Created directory '/home/backup/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/backup/.ssh/id_dsa.
Your public key has been saved in /home/backup/.ssh/id_dsa.pub.
The key fingerprint is:
d2:5a:6c:9f:15:5c:2c:d1:d1:d5:3b:7f:3c:88:bf:d3 backup@servername.com
The key's randomart image is:
+--[ DSA 1024]----+
[Ihr virtueller Fingerabdruck]
+-----------------+
Die Datei liegt im .ssh Unterverzeichnis des Benutzers
Vorbereitungen auf Server 2 (Ziel):
- Ggf. müssen wir zuerst das .ssh Verzeichnis auf Server2 für den Benutzer “backup” anlegen:
mkdir /home/backup/.ssh
chmod 700 /home/backup/.ssh
chown backup:backup /home/backup/.ssh - Wir benötigen den öffentlichen Schlüssel des Benutzers “backup” vom “Server 1″ auf diesem Server. Durch diesen Schlüssel kann sich später Server 2 automatisch bei Server 1 anmelden (identifizieren).
scp backup@server1:~/.ssh/id_dsa.pub /home/backup/.ssh/public-key.tmp
SVN: Nach einem Commit automatisch die Webseite aktualisieren (Post-Commit Hook)
Freitag, 23.07.2010Bei SVN Projekten werden die Änderungen der Entwickler & Programmierer regelmäßig von deren lokaler Kopie in das entsprechende SVN Repository committed (= gesichert / gespeichert).
Bei diesem “Committen” können Sie Ihren SVN Server anweisen, sofort die Änderungen auf einen WebServer zu kopieren und dadurch stets die aktuellste Version zum Testen vorzuhalten.
Zuerst müssen Sie die Grundlage für spätere Updates schaffen … einen grundlegenden Export des aktuelles Repositories:
svn export http://yourDomain.com/svn/YourProject /path/to/webserver/
Wenn das WebServer verzeichnis (hier: “/path/to/webserver/”) bereits existiert und jetzt für den Export überschrieben werden soll, dann müssen die die Option “–force” an den Befehl anhängen:
svn export http://yourDomain.com/svn/YourProject /path/to/webserver/ --force
Nun richten Sie die Update-Automatik ein:
- Dafür gehen Sie in das “hooks” Verzeichnis Ihres Projektes auf dem SVN Server
- Kopieren Sie sich die Vorlage für den “post-commit” Hook:
cp post-commit.tmpl post-commit
- Bearbeiten Sie die Datei “post-commit”
nano post-commit
- Fügen Sie folgende Befehle ein:
1 2
cd /path/to/webserver/ svnlook dirs-changed [REPOS] -r [REV] | xargs /usr/bin/svn up -N
Hinweis:
Dieses Vorgehen ist (meist) nur für lokale Produktions- und Test-Webserver zu empfehlen. Bei Live-Systemen können auch kleine Fehler in der Entwicklung zu fatalen Problemen führen, da diese sofort online für jeden Besucher sichtbar wären.
Oracle: Dynamischen SQL Befehl in einer LOOP
Donnerstag, 22.07.2010In Oracle können Sie auch dynamische SQL Statements als Datenquelle für SQL Abfragen nutzen. Aber nicht nur diese Technik wird im folgenden Beispiel erklärt.
Zusätzlich können Sie die Daten des dynamischen SQL Statements auch in einer Schleife (Loop) abarbeiten lassen und dadurch auch mehrere Befehl für jeden Datensatz (Record) verarbeiten. Sie haben dadurch die Möglichkeit, komplexe Verarbeitungen (Befehle) in mehrere einzelne Befehle auszuteilen (zu splitten):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | CREATE OR REPLACE PROCEDURE TEST (in_Filter IN number) IS Ssql varchar2(2000); TYPE c1 IS REF CURSOR; the_cursor c1; BEGIN -- SQL Basis (Basisstatement) Ssql := 'select distinct kunde.id as kunde_id FROM customer kunde WHERE kunde.status = 1'; -- Filter and das Statement anhängen (wenn ein Filter vorhanden) IF (in_Filter IS NOT NULL) then Ssql := Ssql || ' AND kunde.code = ' || in_Filter; end IF; -- Daten auslesen OPEN the_cursor FOR Ssql; -- Für jeden gefundenen Kunden Aktionen verarbeiten LOOP fetch the_cursor INTO tmp_kunde_id; EXIT WHEN the_cursor%NOTFOUND; -- Historie löschen DELETE FROM customer_state WHERE customer = tmp_kunde_id AND week < (SELECT TO_NUMBER(TO_CHAR(SYSDATE,'IW')) AS week FROM dual); -- Stati des Kunden kopieren INSERT INTO customer_invoices (customer,STATUS,week) SELECT cust_id, state_id, week FROM state_tbl WHERE STATUS > 0 end loop; close the_cursor; END; |
WordPress: Fehler beim Laden des Stylesheets: Ein unbekannter Fehler ist aufgetreten (805303f4)
Donnerstag, 22.07.2010Wenn Sie bei Ihrem WordPress auch das Plugin “Google XML Sitemaps” benutzen, stehen Sie nach dem Update auf Version “3.2.4″ des Plugins vor einem kleinen Problem. Leider bekommen Sie es bewußt nicht immer mit sondern merken es erst nach einer Überprüfung z.Bsp. in den Google Webmaster Tools:
Ihre (vom Plugin generierte) XML Datei ist nicht erreichbar:
Fehler beim Laden des Stylesheets: Ein unbekannter Fehler ist aufgetreten (805303f4)
Teilweise tritt dieses Problem nur bei einer Domain auf – die Hauptdomain (oder erste Domain) läuft relativ ungestört weiter. Für Google und andere Suchmaschinen (Crawler) ist das kleine Problem jedoch massiv, denn sie können Ihre XML Sitemap nicht mehr (richtig) verarbeiten. Dadurch kann es zu plötzlich fehlenden Links und Einträgen in den Suchmaschinen bzgl. Ihrer Webseite kommen. Hintergrund ist ein Problem mit der Verlinkung auf die hinterlegte XSL Datei.
Lösung:
Benennen Sie die Daten “sitemap.xsl” im Verzeichnis “/wp-content/plugins/google-sitemap-generator/” einfach um. Ohne diese Daten erzeugt das Plugin die XML Sitemap wieder fehlerfrei und Google kann wieder alles lesen.
Beispielbefehl für Linux:
mv sitemap.xsl sitemap.xsl.old
In Ihrem FTP Programm können Sie die Datei einfach umbenennen. Häufig ist diese Funktion auf die Taste “F2″ gelegt.
Wichtig für eine schnelle Korrektur:
Erzeugen Sie nach der Umbenennung der XSL Datei Ihre XML Sitemap neu. Gehen Sie dafür in Ihrem WordPress Backend (Administrationsbereich “/wp-admin/”) auf “Einstellungen” > “XML-Sitemap”. Dort klicken Sie auf “… von Hand neu erstellen”. Danach ist die korrigierte XML Daten für die Suchmaschinen verfügbar.
mySQL: root Passwort ändern
Mittwoch, 21.07.2010Mit folgenden Befehlen können Sie das root Passwort Ihres mySQL Server ändern:
/usr/bin/mysqladmin -u root password 'new-password' /usr/bin/mysqladmin -u root -h YourDomain.com password 'new-password'
Beachten Sie dazu auch unsere anderen Artikel:
- mySQL: Vergessenes (root) Passwort zurücksetzen
- mySQL: Alte MD5 Passwörter – OLD_PASSWORD()
- MySQL: Root Passwort ändern
PHP: Apache2 Version in Variable auslesen
Mittwoch, 21.07.2010Damit Sie auf einem Unix (Linux) System einfach die aktuelle Version des Apache WebServers herausfinden können, zeigen wir Ihnen ein PHP-Beispiel.
In dem PHP Script wird die Apache-Funktion “apache2ctl” genutzt, die die aktuelle Apache-Version auszulesen. Dieser Befehl wird mithilfe des PHP Befehles “passthru()” direkt an das Linuxsystem weitergegeben.
Hinweis:
Häufig ist auf “öffentlichen” Webservern aus Sicherheitsgründen die Nutzung einiger Befehle gesperrt. Dazu zählt häufig auch der Befehl “passthru()”. Wenn das Script bei Ihnen lokal auf dem Computer also einwadnfrei läuft und auf Ihrem Internetserver keine Daten zurück gibt, liegt diese Befehlssperre vor. Eine Möglichkeit, diese Sperre aufzuheben hat nur Ihr Web-Administrator (oder Provider).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php // PHP Version auslesen ob_start(); passthru("apache2ctl -v"); $ver = ob_get_contents(); if empty($ver) echo "passthru() disabled ?"; ob_end_clean(); $a = explode("\n", $ver); preg_match('/(server version: ){1}(.*)/i', $a[0], $v); $data[0] = $v[2]; preg_match('/(server built: ){1}(.*)/i', $a[1], $v); $data[1] = date("d.m.Y H:i:s", strtotime($v[2])); print_r($data); ?> |
Apache: Verzeichnisse mit Passwort schützen (htpasswd)
Dienstag, 20.07.2010Mit dem Apache Webserver wird ein Hilfsprogramm ausgeliefert: htpasswd
Es ermöglicht Ihnen die einfache Erstellung von Passwortdateien. Am einfachsten ist es über die Kommandozeile zu bedienen. Mit dem Aufruf “htpasswd -h” erhalten Sie eine kurze Hilfe und Syntax.
Beispiel:
htpasswd -c .htusers peter
Durch diesen Befehl wird eine neue Passwortdatei angelegt. Dabei müssen Sie für den neuen Benutzer “peter” ein Passwort angeben und (durch eine wiederholte Eingabe) bestätigen.
Kopieren Sie die neu erstellte Datei in das vorgesehene, zu schützende Verzeichnis auf Ihrem Internetserver (WebServer).
« Vorheriger Beitrag