Mittwoch, 16. Juli 2014

Raspberry Pi: Wordpress einrichten

Der Raspberry Pi eignet sich wunderbar als Webserver. Will man einen Blog selbst hosten, ist dies mit einem Pi recht kostengünstig machbar. Wordpress ist eine weit verbreitete Publishing- und CRM-Software, die kostenlos nutzbar ist.

Vorbereitungen: Die Routerkonfiguration anpassen

Einige Einstellungen sind je nach Routertyp und Hersteller zu setzen, um den Pi von extern erreichbar zu machen. Man kann beispielsweise das interne Portforwarding oder die "Exposed Host"-Funktion nutzen. Bei anderen Herstellern sind diese Funktionen oft anders benannt, sind aber mit etwas Suchen recht einfach zu finden.

Portfreigabe auf einer AVM-Fritzbox einrichten: 
HTTP-Server wählen oder alternativ eigenen Port (z.B. 80 oder 8080) angeben, je nachdem worauf Euer Webserver lauscht.

Zudem muss zumeist im privaten Bereich ein DYN-DNS-Account angelegt und auf dem Router konfiguriert werden. Da DYNDNS selbst kostenpflichtig geworden ist, würde ich auf einen Alternativanbieter setzen, bei dem der Dienst kostenlos genutzt werden kann.

Achtung! Es kann sein, dass man sich bei kostenlosen DYN-Anbietern z.B. einmal im Monat im Webportal einloggen und "Ja ich nutze die dynamische Adresse noch" anklicken muss.

Wer nicht vor jedem Befehl "sudo" in die Kommandozeile eingeben möchte, kann auch zu Beginn 

sudo -i

eingeben und dies mit Eingabe seines Kennwortes bestätigen. 

ACHTUNG! Alle Eingaben werden mit Superuser-Rechten durchgeführt!

Apache installieren

Einer der bekanntesten und verbreitetsten Webserver im Internet ist apache. Apache2 wird in diesem Tutorial als Webserver, also quasi als Unterbau für Wordpress verwendet. Etwas performanter läuft auf dem Raspberry Pi der Webserver nginx. Auch mit nginx ist Wordpress nutzbar.

Für die Installation von apache2 muss in der Konsole

sudo apt-get install apache2 -y

eingegeben werden.

PHP installieren

Zunächst muss PHP (Version 5) mitsamt der Bibliotheken für apache2 installiert werden - dafür wird apt-get bzw. aptitude mit Superuser-Privilegien aufgerufen:

sudo apt-get install php5 libapache2-mod-php5 -y

PHP testen


Wenn die Installation von PHP erfolgreich war, muss nun im Verzeichnis /var/www die Datei index.html in die index.php umbenannt werden:

sudo mv index.html index.php

Diese Datei wird nun mit dem Editor nano (oder dem Editor Eurer Wahl, wie z.B. vi) bearbeitet
sudo nano index.php

Nun muss nur noch PHP-fühliger Inhalt eingefügt werden:

<?php echo "hallo pi-rates!";

Die Datei muss gespeichert werden. Jetzt kann der Browser mit [F5] aktualisiert werden.

Nun solltet Ihr  "hallo pi-rates!" im Browser lesen können. Es ist kein dynamischer Inhalt, wird aber dennoch über PHP umgesetzt. Für dynamischen Content könnt Ihr z.B. das Datum bzw. die Uhrzeit anzeigen lassen. 

<?php echo date('Y-m-d H:i:s');

Alternativ könnt Ihr auch die Informationen über das installierte PHP-Subsystem anzeigen lassen:

<?php phpinfo();

Das sieht dann so aus:

MySQL installieren

Nebst eines Webservers benötigt Wordpress eine Datenbank als Unterbau. Hier ist die Datenbank, die Wordpress als "Bücherregal" dient, MySQL:

sudo apt-get install mysql-server php5-mysql -y

Wordpress herunterladen und Eigentümer-Attribut setzen

Natürlich fehlt für eine Wordpress-Installation noch etwas essentielles: Wordpress selbst! Das können wir recht einfach direkt in das Verzeichnis /var/www herunterladen und den User pi zum Eigentümer des Ordners www machen.

Zum Wechsel ins o.g. Verzeichnis müsst Ihr folgendes eingeben:

cd /var/www 

Jetzt vereinnahmen wir als User pi den aktuellen Ordner (Eigentümer-Attribut via chown auf User pi übertragen):

chown pi: . 

Alle vorhandenen Dateien im Verzeichnis /var/www löscht ihr mit 

rm * 

Nun noch das aktuellste Wordpress-Archiv herunterladen...

wget http://wordpress.org/latest.tar.gz

...sieht dann so aus:

...

pi@pi-wpweb /var/www $ wget http://wordpress.org/latest.tar.gz

--2014-07-11 00:27:08-- http://wordpress.org/latest.tar.gz

Auflösen des Hostnamen »wordpress.org (wordpress.org)«... 66.155.40.249, 66.155.40.250

Verbindungsaufbau zu wordpress.org (wordpress.org)|66.155.40.249|:80... verbunden.

HTTP-Anforderung gesendet, warte auf Antwort... 200 OK

Länge: 5812042 (5,5M) [application/octet-stream]

In »»latest.tar.gz«« speichern.


100%[==========================================================>] 5.812.042 1,68M/s in 3,3s

2014-07-11 00:27:12 (1,68 MB/s) - »»latest.tar.gz«« gespeichert [5812042/5812042]

Wordpress entpacken

Da sich die Dateien der Wordpress-Installation noch im Archiv befinden, wird momentan noch nichts in Sachen Wordpress funktionieren. Dafür müsst Ihr erst einmal das Archiv entpacken, die Dateien direkt nach /var/www verschieben und dann rekursiv den Ordner wordpress und das tar-Archiv löschen.

Zum Entpacken gebt Ihr als Superuser folgendes ein:

tar xzf latest.tar.gz 

Zum Verschieben der Dateien in /var/www müsst Ihr

mv wordpress/* . 

eingeben. Zum Löschen des Ordners (inklusive Inhalt) und des heruntergeladenen Archivs müsst Ihr folgendes tippen:


rm -rf wordpress latest.tar.gz


Damit Ihr sicher sein könnt, dass die Installation und das Löschen genau so verlaufen sind, wie Ihr es beabsichtigt habt, lasst Euch den Inhalt von /var/www mit dem Befehl ls anzeigen. Das müsste dann ungefähr so aussehen:

.
├── index.php
├── license.txt 
├── readme.html 
├── wp-activate.php 
├── wp-admin 
├── wp-blog-header.php 
├── wp-comments-post.php 
├── wp-config-sample.php 
├── wp-content 
├── wp-cron.php 
├── wp-includes 
├── wp-links-opml.php 
├── wp-load.php 
├── wp-login.php 
├── wp-mail.php 
├── wp-settings.php 
├── wp-signup.php 
├── wp-trackback.php 
└── xmlrpc.php

Wordpress-Datenbank mit MySQL oder SQLlite anlegen

Um Wordpress nutzen zu können, muss eine Datenbank aktiv sein. Ich habe mich für MySQL entschieden, wer es etwas schlanker und flotter mag, kann auch gerne auf SQLlite zurückgreifen. Denkt bei der Installation der Pakete daran, gleich die Pakete zu installieren, die Ihr auch nutzen wollt.

Dazu loggt Euch in MySQL mit Euren Daten aus der Installation ein (in diesem Fall heißt der User root und das Kennwort lautet password):

mysql -uroot -ppassword

Wenn Ihr nun ein mysql> im Prompt seht, seid Ihr in der Datenbank angekommen. Dort legt Ihr nun eine Wordpress-Datenbank an (meine heißt nur wordpress):

mysql> create database wordpress;

Als Rückgabe erhaltet Ihr Folgendes:
Query OK, 1 row affected (0.00 sec)

Mit [STRG] + [D] verlasst Ihr die Datenbank-Syntax und kehrt wieder in den Shell-Prompt zurück.


Wordpress via Web-Browser aufrufen (Test)


Nun könnt Ihr Euren Hostname oder Eure IP im Webbrowser aufrufen (z.B. http://192.168.1.200).

Nicht erschrecken! Wenn alles bisher korrekt verlief, erhaltet Ihr nun eine Fehlerseite von Wordpress. Das ist super! Ihr habt Eure erste Wordpress-Seite erreicht! Doch nun zum Beheben der Ursache. Es müssen in der wp-config.php noch ein paar Parameter gesetzt werden. Dazu in der Kommandozeile

sudo nano wp-config.php

eingeben und folgende Parameter abändern:

Database Name:      wordpress (oder den Namen Deiner Datenbank)
User Name:          root
Password:           <DEIN KENNWORT>
Database Host:      localhost
Table Prefix:       wp_

Die Datei muss mit [STRG] + [X] geschlossen und das Speichern mit [Y] oder [J] (je nach Landeseinstellungen) bestätigt werden.

Wordpress via Web-Browser aufrufen  und WP-Admin-Account anlegen (Keine Übung!)

Ruft Ihr nun (oder spätestens nach einem Reboot des Pi´s) die Wordpress-Seite des Pi´s auf, erhaltet Ihr folgende Ansicht: 



Die Erstanmeldungsmaske! Bitte ausfüllen, bestätigen und mit diesen Daten einloggen...



Fertig ist Euer Wordpress-Server auf Eurem eigenen Raspberry Pi! 

Den Wordpress-Blog erreicht Ihr nun aus dem LAN über die Syntax 

http://[IP/DNS-Name des Pi´s] 

und den Administrations-Login wie bei Wordpress gewohnt über 

http://[IP/DNS-Name des Pi´s]/wp-admin.

Mein Testblog in grün sieht nun so aus (ja, auf manchen Displays ist der Hintergrund gelb und nicht grün...):



Hat alles funktioniert oder hattet Ihr Probleme bei der Einrichtung? Schreibt´s in die Kommentare!

Sonntag, 6. Juli 2014

Kauftipp: SD/MicroSD-Karten-Adapter für Raspberry Pi

SD-Kartenadapter für den Raspberry Pi: Praktisch, aber nicht lebensnotwendig
Hier bekommt Ihr für unter 10,00 € einen Speicherkarten-Adapter, der die chronisch aus dem Pi herausstehende Speicherkarte endlich im Case verschwinden lässt. Ich habe mir eine solche zugelegt und bin begeistert von der Verarbeitung. Die winzige Metallklappe lässt sich gut öffnen und schließen und die Micro-SD-Karten passen wunderbar herein. 

Je nach Case kann der Aufwand eines Kartenwechsels dann allerdings stark variieren, weshalb ein Blick auf das verwendete Case immer vor einem Kauf ratsam ist. Wer den Pi nur einmal aufbaut und einrichtet bis er irgendwann nicht mehr im Einsatz ist, genug Platz im Case und Angst um die herausragenden SD-Karten am Pi hat, dem ist dieser Adapter zu empfehlen. Wer die Karten oft zu Testzwecken etc. wechselt, sollte sich das Geld sparen und eine handelsübliche SD-Karte verwenden, da diese wesentlich leichter zu greifen und zu wechseln sind.