:::: MENU ::::
Browsing posts in: PHP

MySQL Server durch Caching optimieren

Im Query-Cache werden Abfragen und deren Ergebnisse gespeichert. Wenn das gleiche Statement mehrmals benutzt wird , z.B. bei einem Forum in dem die User hauptsächlich gucken, oder bei einem Blog der nur gelesen wird, wird das Ergebnis aus dem Cache geliefert. Bei Webseiten in den sich Abfragen nicht ändern und andauernd wiederholt werden, kann dies zu einer enormen Leistungssteigerung führen.Besonders bei komplexen Statements kann der Query-Cache sehr wirkungsvoll sein, da das zeitaufwändige Parsen der Statements entfällt, z.B. bei der Verarbeitung/Anzeige von öffentlich einsehbaren Nutzungsdaten.

[michi@localshit]mysql -u root -p
mysql> set global query_cache_type=1;
mysql> set global query_cache_size = 67108864;
mysql> FLUSH QUERY CACHE;

67108864 Bytes entsprechen 64 MB. Wer viele Webseiten / viele Seiten betreibt und genug Ram hat kann die Cachegröße natürlich vergrößern.

Mit dem Befehl SHOW STATUS LIKE 'q%'
lässt sich prüfen ob und wie gut der Cache reagiert

[michi@localshit]mysql -u root -p
mysql> SHOW STATUS LIKE 'q%';

Die Ausgabe variiert natürlich, ist aber für Systemadmins sehr aufschlussreich.


WordPresssuche ein wenig Aufpeppen ( Hightlighten )

Wenn man ehrlich ist, so schlecht ist die eingebaute Suche gar nicht. Aber eigentlich wäre es doch toll wenn man einen bestimmten Begriff sucht das dieser markiert erscheint, oder?

Das ist garnicht schwer, einfach folgenden Code in die search.php deines Themes einfügen:

<?php
$title = get_the_title();
$keys= explode(“ „,$s);
$title = preg_replace(‚/(‚.implode(‚|‘, $keys) .‘)/iu‘,
‚<strong class=“search-excerpt“>\0</strong>‘,
$title);
?>

Grob gesagt, das wars schon! Euer Suchbegriff ( $keys ) wird nun<strong> und bekommt gleichzeitig die CSS-Klasse search-excerpt die ihr dann in eurer style.css wie folgt anpassen solltet:

strong.search-excerpt { background: yellow; }

Und schon habt ihr einen Highlighter für die WordPress Suche

Quelle: http://yoast.com/wordpress-search/

WordPress Upgrade? Muss das wirklich sein? WP 2.8.6

Alex von http://internetblogger.de/ hat vor so ca einer Woche auf WP 2.8.6 upgegradet und fragt nun in die Blogosphäre was wir so von Upgrades halten und wie wir sie händeln.

Was haltet ihr von den ganzen Wp-Upgrades?

Ohne Upgrades geht bei mir kaum was. Sie sind wichtig für die Sicherheit des Blogs und des Servers.
Meine Serverplattform prüft täglich ob neue Upgrades verfügbar sind und so verhinder ich das Schädlinge ins System eindringen können und steiger natürlich die Performance ( Besonders beim Upgrade von WP 2.7). Allerdings finde ich genau wie http://blogs-optimieren.de/ dass es doch sehr viele Upgrades gibt die man sicher im Vorfeld hätte vermeiden sollen.

 Welche Version von WordPress nutzt ihr gerade?

2.8.6 DE

Seid ihr bloggende Webmaster, Nur-Webmaster, Nur-Blogger, Nur-Twitterer, twitternde Blogger oder twitternde Blog-Webmaster?

Ich bin ein twitternder Webmasterundblog-Servercowboy der mehrere Webseiten betreibt, diesen Blog,  einen Twitter Account hat und eine Serverfarm mit zurzeit 3 Servern ( und einer virtuellen Home-Maschine ) besitzt 🙂

Alex prangert auf seinem Blog dabei das Problem mit seinen knapp 70 Plugins an, das habe ich natürlich auch ( gerade bei Kunden Webseiten), dieses umgeh ich aber ( bei Kunden ) mit vorheriger Simulation des Upgradeprozesses auf meinem HomePC in der Virtuellen Box, indem ich eine 1:1 Kopie des Kundensystems auf meinem Rechner similiere und den Blog 1:1 auf diesen kopiere und dann sozusagen offline das Upgrade durchführe und so nach Fehlern suche und diese vor dem Produktivupgrade behebe. Wem das zuviel ist und sich nicht zum Upgrade traut ->Ich biete das ganze auch als Service an ( Start ab ~ 7,50 € inkl Rechnung ) und garantiere so ein unterbrechnungsfreies Liveupgrade ohne das der User etwas bemerkt.


HOWTO: Dynamische Signatur ( für WordPress Blogger )

Signaturen gibt es seid dem es Foren gibt :D, dynamische Signaturen sind da allerdings schon eher selten und wenn dann sind sie zum größten Teil nicht selbst gemacht sondern von einem Webservices ( z.B. Gamemonitor oder zetbit), dabei ist es gar nicht so schwer selber eine eigene individuelle Signatur zu erstellen, sogar mit transparentem Hintergrund, ein wenig PHP und eine gute Idee und schon geht es los:

Dynamische Signatur mit transparentem Hintergrund für WordPressartikel:

1. Die Verbindung zur Datenbank, Einstellungen und Bildererzeugung
Zunächst muss die DB Verbindung hergestellt und Grundeinstellungen getätigt werden,
in diesem Schritt wird auch bereits die Bildgrundfläche erzeugt und mit Transparenz „gefüllt“

<?php
########## Verbindung zur DB / Einstellungssache ###########
$db_server = 'localhost';
$db_name = 'wordpress_db';
$db_user = 'wordpress_usr';
$db_passwd = 'changeme';
$tabelle = "wp_posts"; // Evtl Prefix aendern
$hoehe = 50; // Angabe in px
$breite = 500;
$listlimit = 2; // Zahl der zu lesenden Einträge bei uns 2, da 2 Artikel in Signatur

//Schriftarten
$font1 = '/var/www/verdana.ttf'; // Hochladen nicht vergessen ;)
$font2 = '/var/www/verdanab.ttf'; // Fettschrift ;)
$font3 = ''; // ... wenn es mehr sein darf

// ( Bildererzeugung inklusive Alphachannel also Transparenz muss
//   muss vor die allocalisierung der Farben )
$png = imagecreatetruecolor($breite, $hoehe);
imagesavealpha($png, true);

//Transparenz "Farbe"
$trans_colour = imagecolorallocatealpha($png, 0, 0, 0, 127);
imagefill($png, 0, 0, $trans_colour);

//Farben ( beliebig Aender und Addierbar )
$grey = imagecolorallocate($png, 136, 136, 136); // RGBfarben
$red = imagecolorallocate($png, 255, 0, 0);
$bplacedblue  = imagecolorallocate($png, 11,95,180);

2. WordPress-Posts auslesen und in Array schreiben
Zunächst der DB Query und seine Aufgabe:
Lese Artikel_Datum und Artikel_Titel aus der Datenbanktabelle aus mit der Bedingung
das der Post_Type „Post“ ( also Artikel ) ist und sein Status veröffentlicht und sortiere diese
nach dem Artikel_Datum mit dem Limit xy

##Datenbankverbindung ##
$conn = mysql_connect($db_server,$db_user,$db_passwd);
mysql_select_db($db_name);
$result = mysql_query("SELECT post_date, post_title FROM $db_name.$tabelle
WHERE post_type = 'post' AND post_status = 'publish'
ORDER BY post_date DESC LIMIT $listlimit",$conn) or die("Error".mysql_error());

Der Titel muss nun in einen PHP-Array was wir mit der folgenden Schleife reallisieren:

###### Titel in PHP Array ##########
$i=0;
 if(mysql_num_rows($result)){ // Solange wir Zeilen haben ( im Beispiel 2) durchlaufen
 while($row = mysql_fetch_assoc($result)){
 $text[$i]= $row['post_title']; // Titel in den Array $text schreiben
 $i++; // Einen Addieren, Erklaerung Array: http://www.schattenbaum.net/php/array.php
 }
 }

3. Das Bild mit Inhalten ( bei uns WordPress Artikel Titel ) füllen
Dies ist der einzige schwierige Schritt in diesem Tutorial, weil hier zum ersten mal Gehirn und Raumgefühl gefordert werden,  aus diesem Grund möchte ich erstmal die imagettftext(); Funktion und ihrer Parameter erklären:

imagettftext ( resource $im , int $size, int $angle , int $x , int $y , int $col , string $fontfile , string $text )

  • Ressource $im ist bei uns $png also das Bild das zur Grundlage / zuschreiben vorliegt
  • Int $size gibt die Schriftgröße als Zahl ( wie auch sonst? ) an
  • Int $angle ermöglicht es den Text zudrehen den man erzeugen möchte ( Angabe in Grad, bei uns 0 )
  • Int $x, $y beschreiben die Stelle von der aus geschrieben werden soll ( 2D Koordinatensystem )
  • Int $col hier steht später unsere Farbe z.B. $red
  • String $fontfile ist der Pfad zu unserer Schriftart
  • String $text , der Text den wir schreiben wollen

So soll das ganze später aussehen:

sig2

Fangen wir also an mit der ersten Zeile, wie ihr seht besteht sie aus 3 Teilen: Grau, Blau und wieder Grau, hier wird
nochmal deutlich das es einzelne „Mal“-Funktionen sind ( die Reihenfolge ist übrigens egal, hier im Beispiel mach ich es nur der Ordnung und der Verständnis wegen )

## Erste Zeile schreiben ##
imagettftext($png, 8, 0, 0, 15, $grey, $font2, 'Michael bloggt auf');

// andere Farbe und keine Fettschrift mehr
imagettftext($png, 8, 0, 112, 15, $bplacedblue, $font1, 'http://michaelplas.de/');
// Unterschreiben geht nur über einen Trick - Malt eine Linie
// imageline  ( resource $image  , int $x1  , int $y1  , int $x2  , int $y2  , int $color  )
imageline($png  , 112 ,16  , 230  , 16  , $bplacedblue  );

// Und wieder fettes Grau
imagettftext($png, 8, 0, 235, 15, $grey, $font2, 'über  folgendes:');

So und nun die WordPress Titel ( in meinem Beispiel sind es 2 Stück, ich denke für eine Forensignatur reicht das, aber jetzt wisst ihr ja wie es geht )

imagettftext($png, 8, 0, 0, 29, $grey, $font1, $text[0]);
imagettftext($png, 8, 0, 0, 45, $grey, $font1, $text[1]);

Und zum Abschluss noch schnell den Mimetyp und das Bild erzeugen und ausgeben:

header("Content-type: image/png");
imagepng($png);
?>

Und das war es auch schon 😀 Hoffe ich konnte euch weiterhelfen, hier ist nochmal der Sourcecode zum Downloaden, Schriftarten bitte selber besorgen

CODE – HIGHLIGHTED Version