Sie sind hier
E-Book

CouchDB mit PHP

AutorOliver Kurowski
Verlagentwickler.press
Erscheinungsjahr2012
Seitenanzahl240 Seiten
ISBN9783868022551
FormatPDF/ePUB
Kopierschutzkein Kopierschutz/DRM
GerätePC/MAC/eReader/Tablet
Preis18,99 EUR
Das Thema NoSQL ist durch Vertreter wie CouchDB auch für den produktiven Masseneinsatz attraktiv geworden. Beim Einstieg in NoSQL müssen Datenbankentwickler herkömmlicher relationaler Datenbanken viele ihrer Gewohnheiten und Denkweisen ändern. CouchDB belohnt sie dafür mit einer Fülle an neuen und ungeahnten Möglichkeiten, die weit über die reine Datenhaltung hinausgehen. Dieses Buch führt schrittweise in das Thema NoSQL ein und erläutert Vor- und Nachteile dieses Schemas. In unterhaltsamer Weise lernen Sie in ausführlichen Kapiteln die Funktionen der CouchDB schrittweise kennen. Nicht nur die reine Syntax, auch die Denkweise hinter den Funktionen sowie mögliche Einsatzszenarien werden dargestellt und anhand vieler Beispiele erläutert. Zusätzlich zu den allgemeingültigen Informationen wird Kapitel für Kapitel ein kleines PHP-Framework für die CouchDB entwickelt und in einem Praxisteil angewandt. Da alle Beispiele kommentiert sind, können sie problemlos auch für andere Programmiersprachen angepasst werden.

Oliver Kurowski, Diplominformatiker (FH), erlernte das Programmieren mit 15 Jahren auf seinem Apple II. Im Jahre 1998 begann er mit den ersten Programmierungen von Datenbanken für die Automobilbranche, der er bis heute in einer innovativen produzierenden Firma treu geblieben ist. Verschiedenste Herausforderungen auf diesem Gebiet verlangten schon immer besondere Lösungen und manchmal neue Wege, sodass es nur eine Frage der Zeit war, wann auch der NoSQL-Funke übersprang. Oliver Kurowski ist vielleicht nicht der typische Agenturprogrammierer, sondern vereint die Liebe zum Programmieren mit dem praktischen Wissen aus der Industrie, das er in diesem Buch einfließen lässt. Er ist Autor von Fachartikeln und lebt in Berlin.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

2 Voraussetzungen

Was braucht man nun alles, um sich mit dem Thema CouchDB mit PHP auseinanderzusetzen? Nun, in erster Linie CouchDB und PHP. Dieses Buch ist hauptsächlich für PHP-Entwickler geschrieben worden (auch wenn die Beispiele schnell an andere Sprachen angepasst werden können), sodass ich davon ausgehe, dass Sie ein lauffähiges PHP 5.3 samt Webserver (Apache o. ä.) auf Ihrem Computer installiert haben. In CouchDB ist ein HTTP-Server integriert, der die Anfragen an die CouchDB entgegennimmt und ausgibt. Auch ein Administrationstool mit grafischer Oberfläche ist vorhanden, es wird also kein extra HTTP-Server benötigt. Allerdings schreiben wir Beispielcode in PHP, der die Ergebnisse der Abfragen in dem Browser ausgibt. Und für diese Beispiele brauchen wir den Webserver, den ich als bereits installiert und laufend voraussetze. Der Webserver muss dabei nicht auf dem gleichen System wie die CouchDB installiert sein, sondern dort, wo Sie die Beispielcodes testen möchten.

Natürlich brauchen Sie eine CouchDB, mit der Sie die Beispiele ausprobieren können. Im folgenden Abschnitt finden Sie mehrere Möglichkeiten, an eine lauffähige Version zu kommen.

Zu guter Letzt ist es auch sehr angenehm, einige schnelle Aufgaben direkt in der Kommandozeile Ihres Betriebssystems ausführen zu können. Um HTTP-Anfragen an eine Adresse zu schicken, gibt es den Befehl curl, der bei Linux und OS X bereits vorhanden ist. Sollte es auf Ihrem System fehlen, so kann es mit (sudo) apt-get install curl in den meisten Distributionen hinzugefügt werden. Unter Windows muss curl nachträglich installiert werden, die Informationen dazu gibt es im letzten Abschnitt dieses Kapitels.

Hier in Kurzform noch einmal alle Vorbedingungen für die Beispiele in diesem Buch:

  • PHP 5.3 mit aktivierter libcurl
  • CouchDB, mind. Version 1.1
  • Webserver (Apache o. ä)
  • curl als Kommandozeilentool (Installation nur bei Windows nötig)

2.1 Installation der CouchDB

Das Hauptmotto von CouchDB ist „relax“, und genau nach diesem Motto werde ich auch die Installationen in diesem Buch beschreiben. Unter http://wiki.apache.org/couchdb/Installation finden Sie ausführliche Informationen rund um die Installation von CouchDB.

Prinzipiell besteht immer die Möglichkeit, CouchDB durch das Kompilieren der Quellcodes auf dem eigenen System zu installieren. Dabei sind die Abhängigkeiten von Erlang, Spidermonkey als JavaScript-Engine und CouchDB zu beachten. Wer Spaß am manuellen Installieren der Quellen hat, wird mit seiner Suchmaschine schnell fündig.

Es bestehen für die wichtigsten Systeme (der PHP-Entwickler) auch bereits vorgefertigte Binaries, also Pakete zur einfachen Installation. Das sind nicht immer die tagesaktuellen Versionen, aber für den Einstieg in das Thema und alle Kapitel in diesem Buch völlig ausreichend. Schelten Sie mich, aber meiner Meinung nach sollte die Einstiegshürde für ein neues Thema so gering wie möglich sein. Sind Sie erst einmal vom CouchDB-Virus infiziert, haben Sie durch die aktive Community und zahlreiche Informationen im Internet die Möglichkeit, sehr tief in das Thema Installation einzusteigen. Daher fange ich mit der leichtesten Möglichkeit an, der kostenlosen Nutzung eines CouchDB Hosters.

2.1.1 CouchDB als Service

Die einfachste Möglichkeit, sofort loszulegen, ist die Nutzung von Hosting-Diensten für die CouchDB. Erfreulicherweise gibt es auch kostenlose Angebote für kleinere Aufgaben. Bei dieser Möglichkeit ist die Adresse der Datenbank dann der URL des Dienstes (und Ihrer Instanz) anstelle des lokalen Servers. Auch ist der Port hier nicht 5984, sondern meist Port 80 (Standard HTTP).

Ans Herz legen kann ich Ihnen zwei Anbieter, deren Mitarbeiter auch aktiv in der Community tätig sind:

1. Iris Couch

Iris Couch ist aus dem Couchbase-Projekt1 entstanden und war zwischenzeitlich auch unter CouchOne bekannt. Die Hauptseite von Iris Couch2 besagt: Wer seinen Namen buchstabieren kann, kann auch eine CouchDB zum Laufen bringen. Gesagt, getan: nach Klick auf Sign Up Now kommen wir auf eine Seite mit einem Formular mit genau vier Feldern. Bei Iris Couch bekommen Sie Ihre Datenbank als Subdomain von iriscouch.com. Sich einen Namen dafür einfallen zu lassen, ist für die Registrierung der schwierigste Punkt. Direkt nach dem Bestätigen des Formulars ist Ihre Instanz unter dem gewählten Namen erreichbar.

Sämtliche Beispieldatenbanken dieses Buches finden Sie auch unter http://couchdbmitphp.iriscouch.com/_utils.

2. Cloudant

Bei Cloudant3 steht der Clustering-Gedanke im Vordergrund. Basierend auf BigCouch4, einem Open-Source-Zweig von CouchDB, bei dem ein Cluster von CouchDB-Datenbanken zusammengefasst und wie eine Instanz angesprochen wird, bietet Cloudant das Hosting für BigCouch-Instanzen an. Auch hier gibt es die Möglichkeit, eine kostenlose Datenbank zu registrieren. Je nach Anforderung von Speicherplatz und Aufrufen/Monat gibt es verschiedene Preise für größere Pakete5. Wie bei Iris Couch ist die Anmeldung mit einem Schritt getan. Wählen Sie den Namen der cloudant.com-Subdomain für Ihre Datenbank, dazu Passwort und E-Mail, und los gehts. Zu beachten ist hierbei, dass nicht alle Befehle der CouchDB verfügbar sind. Die genauen Einschränkungen finden sie online6.

Selbstverständlich finden Sie auch unter http://couchdbmitphp.cloudant.com/_utils die Datenbanken dieses Buches.

Generell ist bei der Benutzung von Iris Couch oder cloudant.com zu beachten, dass dort nicht immer die aktuellste Version der CouchDB implementiert ist. Sie sind aber zeitnah umgesetzt und ausreichend, um die Beispiele in diesem Buch durchzuspielen.

2.1.2 Windows

Seit April 2012 können Sie direkt unter couchdb.apache.org die neuesten Versionen der CouchDB herunterladen. Momentan finden Sie dort die Quellen und die Installationsprogramme für Windows. Weitere Unterstützung für die Installation auf Windows-Systemen finden Sie unter http://wiki.apache.org/couchdb/Installing_on_Windows. Jetzt, April 2012, scheint diese Seite etwas veraltet, die neueste Version gibt es direkt auf der Startseite. Es werden keine weiteren Programme zur Installation benötigt. Einzig schwer ist die Frage, ob die CouchDB als Dienst installiert werden soll oder nicht. Bei der Installation werden alle wichtigen Komponenten wie die Erlang Runtime oder Spidermonkey als JavaScript Engine und natürlich die CouchDB selber installiert.

Nach der Installation finden Sie in der Windows-Programmleiste unter Alle Programme -> Apache CouchDB einen Eintrag für Futon, der integrierten Administrationskonsole von CouchDB (die direkt auf den Link http://127.0.0.1:5984/_utils zeigt), und die Möglichkeit, die CouchDB manuell zu starten (sofern Sie CouchDB als Dienst installiert haben, bekommen Sie einen Blick auf das Erlang-Fenster und einer Fehlermeldung, das ist normal).

Natürlich können Sie auch unter Windows die CouchDB manuell kompilieren. Unter http://wiki.apache.org/couchdb/Building_from_source_on_Windows finden Sie weitere Informationen, aber auch hier der Hinweis: Diese Seite scheint nicht aktuell zu sein.

2.1.3 Linux

Auch für das in Servern am häufigsten eingesetzte Betriebssystem gibt es mehrere Möglichkeiten, die CouchDB zu installieren.

Eine recht einfache Möglichkeit, die aktuellste Version der CouchDB inklusive aller abhängigen Module zu bekommen, ist das build-couchdb-Projekt7 aus der Schmiede von Iris Couch. Deren Erfahrungen im Aufsetzten von CouchDB-Instanzen haben sie genutzt, um das Kompilieren der Quelltexte inklusive der abhängigen Module zu automatisieren. Auf der Projektseite finden Sie eine recht ausführliche Anleitung zur Benutzung des Tools. Der Vollständigkeit halber beschreibe ich hier die Schritte der Installation auf einem frischen Debian-6-/Ubuntu-11.10-System in wenigen Worten:

1. Zuerst müssen die zum Kompilieren notwendigen Libraries für Ihre Distribution installiert werden (nutzen Sie vorab apt-get update zum Aktualisieren der Paketlisten):

sudo apt-get install make gcc zlib1g-dev libssl-dev rake

2. Um an die aktuellen Quellen von CouchDB aus dem git-Repository zu kommen, brauchen Sie das Versionsmanagementsystem git8:

sudo apt-get install git-core

3. Navigieren Sie sich in das Verzeichnis, in dem Sie die Installation vornehmen möchten, und laden Sie die Quelltexte herunter (hier: in /):

git clone git://github.com/iriscouch/build-couchdb

4. Wechseln Sie in das Verzeichnis build-couchdb und aktualisieren Sie die abhängigen Submodule, anschließend wird der gesamte Installationsprozess mit rake gestartet:

git submodule init
git submodule update
rake

Dieser Vorgang dauert relativ lange.

5. Nun müssen Sie noch den Benutzer für die CouchDB einrichten und die Rechte für die Dateien setzen:

adduser --system --home /usr/local/var/lib/couchdb --shell /bin/bash
--group couchdb
chown -R couchdb:couchdb ...
Blick ins Buch

Weitere E-Books zum Thema: Informatik - Algorithmen - Softwaresysteme

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Software Engineering

E-Book Software Engineering
Architektur-Design und Prozessorientierung Format: PDF

Das Lehrbuch behandelt alle Aspekte der Software-Entwicklung, besonders aber Methoden und Richtlinien zur Herstellung großer und qualitativ hochwertiger Softwareprodukte. Es vermittelt das zur…

Software Engineering

E-Book Software Engineering
Architektur-Design und Prozessorientierung Format: PDF

Das Lehrbuch behandelt alle Aspekte der Software-Entwicklung, besonders aber Methoden und Richtlinien zur Herstellung großer und qualitativ hochwertiger Softwareprodukte. Es vermittelt das zur…

Weitere Zeitschriften

BEHINDERTEPÄDAGOGIK

BEHINDERTEPÄDAGOGIK

Für diese Fachzeitschrift arbeiten namhafte Persönlichkeiten aus den verschiedenen Fotschungs-, Lehr- und Praxisbereichen zusammen. Zu ihren Aufgaben gehören Prävention, Früherkennung, ...

Courier

Courier

The Bayer CropScience Magazine for Modern AgriculturePflanzenschutzmagazin für den Landwirt, landwirtschaftlichen Berater, Händler und generell am Thema Interessierten, mit umfassender ...

Gastronomie Report

Gastronomie Report

News & Infos für die Gastronomie: Tipps, Trends und Ideen, Produkte aus aller Welt, Innovative Konzepte, Küchentechnik der Zukunft, Service mit Zusatznutzen und vieles mehr. Frech, offensiv, ...

DHS

DHS

Die Flugzeuge der NVA Neben unser F-40 Reihe, soll mit der DHS die Geschichte der "anderen" deutschen Luftwaffe, den Luftstreitkräften der Nationalen Volksarmee (NVA-LSK) der ehemaligen DDR ...

e-commerce magazin

e-commerce magazin

PFLICHTLEKTÜRE – Seit zwei Jahrzehnten begleitet das e-commerce magazin das sich ständig ändernde Geschäftsfeld des Online- handels. Um den Durchblick zu behalten, teilen hier renommierte ...

elektrobörse handel

elektrobörse handel

elektrobörse handel gibt einen facettenreichen Überblick über den Elektrogerätemarkt: Produktneuheiten und -trends, Branchennachrichten, Interviews, Messeberichte uvm.. In den monatlichen ...