re:oyd (5): Web/PHP-Server@Pogoplug v2

Die begrenzten Ressourcen unseres Pogoplugs sprechen dagegen Arkansas 501 find phone , einen klassischen LAMP-Server mit Apache aufzusetzen. Eine bessere Wahl ist nginx oder lighttpd. Da es für lighttpd nur wenig weiterführende Artikel im Netz gibt, nehmen wir das verbreitetere nginx. Dazu kommt PHP mit einer alternativen FastCGI Implementation: PHP-FPM, PHP-GD für Grafikfunktionen und sqlite als Datenbank.

pacman -S nginx php php-fpm php-sqlite sqlite php-gd

Damit nginx und PHP immer automatisch starten fügen wir beide in den Service-Manager ein:

systemctl enable nginx
systemctl enable php-fpm

Als nächstes müssen wir noch die Web-Verzeichnisse anpassen und nginx mit php-fpm verbinden.

  1. Dazu zunächst in das nginx-Verzeichnis wechseln:
    cd /etc/nginx
  2. Dort die Datei nginx.conf öffnen (etwa mit vi) undd die folgenden Zeilen anpassen:
    location / {
       root   /srv/http;
       index  index.php index.html index.htm;
    }
  3. sowie die folgende auskommentierten Zeilen finden und entsprechend anpassen:
    location ~ \.php$ {
        root   /srv/http;
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include   fastcgi_params;
    }

Jetzt müssen wir nur noch nginx und php-fpm starten und der Server läuft:

systemctl start nginx
systemctl start php-fpm

Ein Aufruf der IP-Adresse des Pogoplug im Browser sollte jetzt zu einer Fehlermeldungsseite (403) führen. Das ist richtig, wir haben ja noch keinen Webinhalt erstellt. Dazu wechseln wir jetzt ins Hauptverzeichnis unsere Webinhalte

cd /srv/http

und erstellen die Datei index.php (etwa mit vi). In die Datei schreiben wir folgenden Inhalt, um unsere PHP-Konfiguration auf der Webseite anzeigt:


Jetzt sollte ein Aufruf der Pogoplug-IP im Browser eine Webseite mit der PHP-Konfiguration anzeigen. Damit läuft unsere Web/PHP-Server.

re:oyd (4): ArchLinuxARM@Pogoplug v2

Mit der Pogoplug eigenen Software können wir für unsere Serverpläne nichts anfangen. Eine geeignete Linux-Distribution auf dem Pogoplug einzuspielen, stand daher als erstes auf dem Plan. Aufgrund der beschränkten Hardware und dem guten Community-Support bietet sich Arch Linux ARM an. Eine Installationsanleitung gibt es direkt von ArchLinuxARM.org.

Hier ein Überblick über die Installation:

  1. Pogoplug an Strom und Netzwerk anschließen
  2. USB Stick einstecken (Achtung! Alle auf dem Stick befindlichen Daten gehen verloren!)
  3. Im Routermenü die IP-Adresse des Pogoplug suchen (Router meist im Browser über 192.168.0.1 zu erreichen. Bei den verbundenen Geräten sollte der Pogoplug und die ihm zugewiesene IP auftauchen – unter der Annahme, dass beim Router DHCP an ist)
  4. Es bietet sich an, schon an dieser Stelle dem Pogoplug über den Router eine feste IP zuzuweisen. Spätestens für Dynamic DNS wird das sowieso notwendig. Im Folgenden gehen ich davon aus, dass der Pogoplug über 192.168.0.11 zu erreichen ist.
  5. Über ssh mit dem Pogoplug Kontakt aufnehmen:
    ssh -l root 192.168.0.11
  6. Das Passwort ist: ceadmin
  7. Jetzt stellen wir die auf dem Pogoplug laufenden Software aus:
    killall hbwd
  8. Ins temporäre Verzeichnis wechseln:
    cd /tmp
  9. Den nötigen Bootloader herunterladen:
    wget http://jeff.doozan.com/debian/uboot/install_uboot_mtd0.sh
  10. Die heruntergeladene Datei ausführbar machen…:
    chmod +x install_uboot_mtd0.sh
  11. …und ausführen
    ./install_uboot_mtd0.sh

Als nächstes kümmern wir uns um die Vorbereitung des USB-Sticks:

  1. Partitionsprogramm fdisk für den Stick starten
    /sbin/fdisk /dev/sda
  2. Im Programm mit den folgenden Tasten, das folgende machen:
    • Alle Partitionen des Sticks löschen
      o
    • Liste aller Partitionen anzeigen, die jetzt hoffentlich leer ist
      p
    • Neue Partition erstellen
      n
    • Es soll eine primäre Partition werden
      p
    • Beide Vorgaben übernehmen mit zweimal
      Enter
    • Programm beenden
      w
  3. Programm mke2fs runterladen, um ext2 Dateisystem erstellen zu können
    wget http://archlinuxarm.org/os/pogoplug/mke2fs
  4. Benutzerrechte und Ausführbarkeit einstellen
    chmod 755 mke2fs
  5. USB-Stick mit ext2 formatieren
    ./mke2fs /dev/sda1
  6. Verzeichnis usb erstellen
    mkdir usb
  7. Die eben auf dem USB-Stick erstellte Partition in das Verzeichnis usb mounten
    mount /dev/sda1 usb

Jetzt müssen wir ArchLinuxARM herunterladen und installieren:

  1. Zunächst ins neu erstellte Verzeichnis usb wechseln
    cd usb
  2. Dann Arch Linux laden
    wget http://archlinuxarm.org/os/ArchLinuxARM-armv5te-latest.tar.gz
  3. Das heruntergeladene Archiv muss entpackt werden, was etwas dauern kann
    tar -xzvf ArchLinuxARM-armv5te-*.tar.gz
  4. Die Archivdatei können wir jetzt wieder löschen
    rm ArchLinuxARM-armv5te-*.tar.gz
  5. Jetzt noch sicherstellen, dass alle entpackten Daten auch aus dem Speicher auf den USB-Stick gewandert sind
    sync

Und jetzt noch aufräumen:

  1. Aus dem Verzeichnis usb ins darüber liegende Verzeichnis wechseln
    cd ..
  2. USB-Stick auswerfen
    umount usb
  3. Pogoplug neustarten
    /sbin/reboot

Reconnect:

  1. Vor dem Reconnect muss bei Linux/Mac noch der alte SSH Schlüssel gelöscht werden
    ssh-keygen -R 192.168.0.11
  2. Jetzt wieder eine ssh-Verbindung aufbauen
    ssh -l root 192.168.0.11
  3. Das Passwort ist jetzt: root
  4. Daher sollten wir das schnell noch ändern
    passwd
  5. Bevor es mit dem Installieren von Programmen los gehen kann, müssen wir erstmal mit dem Paketmanager pacman die Paketliste aktualisieren und das System updaten
    pacman -Syu
  6. Und noch schnell den Namen des Servers anpassen
    hostname royd

Daumen hoch, unser eigener ArchLinuxARM-Server läuft auf dem Pogoplug v2!

re:oyd (3): Der Server – Pogoplug v2

PogoplugHeute ist der bestellte Pogoplug angekommen.
Nach dem Auspacken machte sich erstmal Ernüchterung breit. Auf der Packung steht zwar POGO-P24, auf dem Gerät findet sich jedoch ein Aufkleber (mit der gleichen Seriennummer) mit der Angabe POGO-E2. Also das Gerät einfach mal aufgemacht und siehe da, tatsächlich ein Pogoplug der 2. Generation und nicht der 3ten. Die v2 hat im Gegensatz zur v3 keinen SATA-Anschluss auf dem Board. Damit hat sich die Überlegung, eine SSD per SATA anzuschließen erstmal erledigt (zum Glück hatte ich noch nicht alle dafür nötigen Kabel und Adapter gekauft). Außerdem gibt es nur einen Einkern-Prozessor statt eines DualCore. Immerhin ist der dafür aber höher getaktet und – für einen Server nicht gerade unwichtig – hat 256MB Ram statt 128MB beim v3.

Hier also die vollständigen Daten des künftigen r:oyd-Server:

  • 1,2 GHz Marvell Kirkwood Prozessor
  • 256MB RAM
  • 128MB NAND Speicher
  • 4 USB-Anschlüsse
  • 1 Gigabit Lan-Anschluss
  • 4-5 Watt Verbrauch (ohne Festplatte)

Zum Testen muss erstmal ein alten 8GB USB-Stick herhalten. Perspektivisch müsste dann mal einer rausgesucht werden, der die Schreib/Leseleistung des Pogoplug voll ausreizt (eine Festplatte würde ja wieder Lärm produzieren und den Stromverbrauch erhöhen). Das werden dann wohl aber auch nur je 20-30 MB/s werden. Mit SATA-Anschluss wäre das etwas schneller geworden… (zumindest ein User berichtet von 45 MB write/ 98 MB read). Bei SAMBA-Tests lagen aber beide Lösung bei rund 20 MB/s.