[SERVER] PHP5 JSON Modul auf Strato vServer nachinstallieren (openSUSE)

Ich musste letztens auf einem vServer mit openSUSE das json Modul für PHP5 nachinstallieren.
Folgende Schritte müssen durchgeführt werden:

Schritt 1:
Per SSH auf dem Server anmelden

Schritt 2:
Folgenden Befehl eingeben

yast2 --install php5-json

Dadurch wird das SUSE Setup Tool angewiesen, dass PHP5-JSON Paket herunterzuladen und zu installieren.

Schritt 3:
Danach noch

/etc/init.d/apache2 restart

Um den Apache2 Dienst neuzustarten.

Jetzt sollte in der phpinfo das Modul „json“ angezeigt werden.

[MySQL] SELECT … ORDER BY -> Umlaute (Konvertierung)

Um in einem „MySQL SELECT“ dafür zu sorgen, dass eine Sortierung auch mit Umlauten am Anfang eines Wortes richtig funktioniert, muss man nur eine kleine Veränderung im Bereich des „ORDER BY“ vornehmen. Das Zauberwort heißt „REPLACE„.

In meinem Beispiel gehe ich davon aus, dass die Umalute als Entitäten in der Datenbank gespeichert wurden.

Ä = Ä

Wenn man in diesem Fall nichts am „ORDER BY“ ändert, würden die Einträge mit den Umlauten ganz am Anfang erscheinen (wegen dem &-Zeichen). Mit der „REPLACE“ Funktion kann ich beliebige Zeichen während der Sortierung kurzzeitig ersetzen lassen.

Beispiel:

ORDER BY
  REPLACE (
    REPLACE (
      REPLACE (
        SPALTENNAME ,"Ä","Ae"
      ), "Ö","Oe"
    ), "Ü","Ue"
  ) ASC

Nun werden die Entitäten durch „Ae, Oe oder Ue“ ersetzt und die Einträge mit den Umlauten erscheinen bei „A, O oder U“.

[CSS] DIV 100% Höhe / Breite

Diese Frage taucht immer wieder auf:
Wie kann ich einen DIV-Container mit einer Höhe bzw. Breite von 100% definieren?

Ganz einfach! Es nützt nichts, wenn man nur den DIV-Container ansich mit 100% definiert. Wichtig ist, dass die “umschließenden Elemente” dann auch mit einer Höhe bzw. Breite von 100% definiert sind.
Hier mal ein kurzes Beispiel:

html, body {
  height: 100%;
}

#100_prozent_div {
  width: 250px;
  height:100%;
}

Da normalerweise das html und body Tag die “umschließenden” Elemente eines DIV sind, werden diese ganz einfach auf 100% gesetzt. In diesem Beispiel habe ich nur die Höhe auf 100% gesetzt. Diese Methode gilt natürlich auch für die Breite oder beides.

[jQuery] Thickbox und AJAX Content – Wo ist das Fenster?

Für alle, die sich fragen warum eine Thickbox nicht erscheint, wenn sie von einem per „load-Befehl“ in die Seite eingebundenen Objekt aus aufgerufen wird, habe ich eine Antwort parat. Das Problem ist, dass nach dem Laden des DOM’s die Objekte, die mit Thickbox-Befehlen versehen sind mit der Thickbox-Funktionalität initialisiert werden. Dieser Vorgang geschieht allerdings nicht, wenn im Nachhinein Content per „load-Befehl“ in den DOM geladen wird. Somit erscheint auch keine Thickbox, wenn man das entsprechende Objekt anklickt.
Eine einfache Codezeile schafft hier allerdings Abhilfe. Über den Befehl „tb_init()“ werden alle Objekte, die sich im DOM befinden mit der Thickbox verbunden. Vorausgesetzt sie haben die entsprechende TB-Klasse als Attribut.

tb_init('a.thickbox, area.thickbox, input.thickbox');

Subdomains in lokaler Entwicklungsumgebung

Heute wollte ich auf meiner lokalen Entwicklungsumgebung die unter http://minibox/ erreichbar ist eine Subdomain a la http://subdomain.minibox/ einrichten, um bei der lokalen Entwicklung eine Serverumgebung zu simulieren, in der sich die Webseite nicht in einem Unterverzeichnis (http://minibox/subdomain/) befindet, sondern in der obersten Ebene des Webservers. Zunächst hatte ich einige Probleme bei der Konfiguaration aber nach ein wenig “Googlei” habe ich nun die Lösung für die Einrichtung von Subdomains innerhalb einer lokalen Entwicklungsumgebung gefunden.

Meine Konfiguration:
Windows XP
XAMPP mit Apache2
lokale Adresse des Servers: http://minibox/
IP Adresse des Servers: 192.168.1.100
Document Root des Apache: D:\lokal_dev

Zunächst muss man die Datei “httpd-vhosts.conf” in “X:\xampp\apache\conf\extra” bearbeiten.
Dort entfernt man die “#” vor “# NameVirtualHost *:80″.
Danach fügt man folgende Einträge am Ende der Datei hinzu:


  ServerAdmin admin@minibox
  DocumentRoot D:/local_dev/
  ServerName minibox
  ServerAlias minibox
  ErrorLog logs/error.log
  CustomLog logs/access.log common
  
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
  



  ServerAdmin polarwind@minibox
  DocumentRoot D:/local_dev/polarwind/
  ServerName polarwind.minibox
  ServerAlias polarwind.minibox
  ErrorLog logs/polarwind-error.log
  CustomLog logs/polarwind-access.log common
  
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
  

Das 1. VirtualHost ist die Konfiguration für die Domain “http://minibox/“. Dort steht als “DocumentRoot D:/local_dev/“. Dieser Eintrag muss mit dem aus der “httpd.conf” übereinstimmen. Als ServerName und Alias sind jeweils “minibox” eingetragen, da ich den Server über diesen Namen erreichen will.

Das 2. VirtualHost ist die Konfiguration für die Subdomain “http://polarwind.minibox/“. Hier ist das “DocumentRoot D:/local_dev/polarwind“. Also das Verzeichnis, in dem die Dateien für liegen, die über die Subdomain abrufbar sein sollen. Als ServerName und Alias stehen hier “polarwind.minibox“. Dadurch können die Inhalte aus dem DocumentRoot über “http://polarwind.minibox/” aufgerufen werden.

Nun muss noch eine weitere Datei bearbeitet werden. Und zwar die Datei “hosts“. Sie liegt bei Windows XP in “C:\WINDOWS\system32\drivers\etc“. Dort können IP Adressen mit Hostnamen verbunden werden. In meinem Beispiel trage ich eine neue Zeile ein:

192.168.1.100        minibox        polarwind.minibox

“192.168.1.100” ist die lokale IP Adresse meines Computers. Über diese IP Adresse sind die Hostnamen minibox und polarwind.minibox nun erreichbar. Somit kann ich im Browser beispielsweise polarwind.minibox eingeben und bekomme den Inhalt des vorher definierten VirtualHosts angezeigt.

Ich hoffe, dass ich mit dieser Anleitung dem ein oder anderen helfen konnte!

Release: Polarwind-Expeditions.com

www.polarwind-expeditions.com

Die Firma Polarwind-Expeditions aus Münster organisiert Segelreisen der ganz besonderen Art. Kap Hoorn, die Antarktis oder Feuerland sind Ziele, die man nicht jeden Tag mit einer Segelyacht ansteuert. Seit ca. 3 Wochen ist die neue Webseite nun schon online und wir finden immer wieder zusätzliche Features, die nachträglich eingebaut werden. Ich bedanke mich an dieser Stelle schon mal für die tolle Zusammenarbeit!!

Google Maps auf lokaler Entwicklungsumgebung

Ich entwickle und teste meine Projekte größtenteils erstmal in einer lokalen Umgebung bevor sie ins weltweite Netz gelangen. Ab und zu kommt es dann auch mal vor, dass ich eine Google Map irgendwo einbinden will. Anscheinend hat sich bei Google in letzter Zeit etwas im Bereich der API Keys getan. Bisher war es überhaupt kein Problem in einer lokalen Umgebung (http://localhost/xcep/) eine Google Map mit einem API Key für die “zukünftige Domain” des Projektes (http://www.xcep.net) zu verwenden. Doch heute wurde ich eines Besseren belehrt. Beim Einbinden einer Google Static Map wurde diese nicht angezeigt. Ich benutzte einen Key für http://www.xcep.net/. Nach langem forschen und probieren habe ich mir einfach spaßeshalber über die Google Maps API Key Generierung einen Key für http://localhost/ erstellen lassen. Und siehe da – sofort läuft alles wie gewünscht!

Also mein Hinweis für alle, die sich diesen Ärger ersparen wollen:
Wenn ihr lokal entwickelt, braucht ihr auch einen API Key für localhost. Echt nervig. Hat aber wohl seinen Sinn und Zweck.