Owncloud auf dem Raspberry Pi

Diejenigen, die mein Blog mehr oder weniger regelmäßig besuchen oder auch den persönlichen Kontakt zu mir pflegen wissen, dass ich im Besitz mehrerer Raspberry Pi-Rechner bin. von diesen vielen (drei an der Zahl bisher) betreibe ich einen als Home-Server im Keller, direkt am Router angeschlossen.

Auf diesem Home-Server habe ich jetzt seit wenigen Wochen die Software Owncloud installiert, um darüber z.B. Dateien, Kontakte und Termine mit verschiedenen Endgeräten wie Laptop, PC, Handy, Tablet, … zu synchronisieren. Im Grunde kann ich mich trotz der doch leistungsschwachen Hardware, die so ein Raspberry Pi darstellt, nicht beschweren, was die Verarbeitungsgeschwindigkeit der Anfragen angeht.

Als Basis nutze ich den lighttpd als Webserver, der mit einigen Tuning-Einstellungen und einem PHP-Accelerator die Sache zu stemmen weiß.

Die Zugriffszeiten liegen beim Browsing innerhalb des Webinterface (z.B. beim Verzeichniswechsel in der Datei-Cloud) bei ca. 1-3 Sekunden, was denke ich durchaus tragbar ist. Die Schauergeschichten, die man im Web so lesen kann, dass man mit Owncloud auf einem Raspberry Pi nicht arbeiten kann, kann ich also absolut nicht bestätigen. Vielleicht hat sich hier im Laufe der Zeit bei der Software selbst ja auch einiges getan. Die aktuelle Version 7.0.2.1 jedenfalls läuft wie die Katz‘!

Ich sollte noch erwähnen, dass ich zusätzlich den Lighttpd mit SSL-Zertifikat betreibe, also jede Anfrage automatisch auf eine SSL-Verbindung umgebogen wird und damit eine verschlüsselte Dateiübertragung stattfindet. Auch eine Sache, die laut Berichten im Web mit dem Raspberry Pi angeblich grausig langsam laufen würde, was ich wiederum auch widerlegen muss!

Hier noch die lighttpd.conf, falls sich jemand für die Detailkonfiguration des Webservers interessiert:

server.modules = (
„mod_access“,
„mod_accesslog“,
„mod_alias“,
„mod_compress“,
„mod_fastcgi“,
„mod_redirect“,
„mod_rewrite“,
)

server.document-root = „/var/www“
server.upload-dirs = ( „/var/cache/lighttpd/uploads“ )
server.errorlog = „/var/log/lighttpd/error.log“
server.pid-file = „/var/run/lighttpd.pid“
server.username = „www-data“
server.groupname = „www-data“
server.port = 80

accesslog.filename = „/var/log/lighttpd/access.log“
index-file.names = ( „index.php“, „index.html“, „index.lighttpd.html“ )
url.access-deny = ( „~“, „.inc“ )
static-file.exclude-extensions = ( „.php“, „.pl“, „.fcgi“ )

# compression settings for gzip

compress.cache-dir = „/var/cache/lighttpd/compress/“
compress.filetype = („text/xml“,“application/x-javascript“, , „application/javascript“, „text/javascript“, „text/x-js“, „text/css“, „text/html“, „text/plain“, „image/png“, „image/gif“, „image/jpg“, „image/svg+xml“, „application/xml“)

fastcgi.server = ( „.php“ => ((
„bin-path“ => „/usr/bin/php5-cgi“,
„socket“ => „/tmp/php.socket“
)))

# default listening port for IPv6 falls back to the IPv4 port
include_shell „/usr/share/lighttpd/use-ipv6.pl “ + server.port
include_shell „/usr/share/lighttpd/create-mime.assign.pl“
include_shell „/usr/share/lighttpd/include-conf-enabled.pl“
$HTTP[„scheme“] == „http“ {
# capture vhost name with regex conditiona -> %0 in redirect pattern
# must be the most inner block to the redirect rule
$HTTP[„host“] =~ „.*“ {
url.redirect = („.*“ => „https://%0$0“)
}
}

$HTTP[„url“] =~ „^/owncloud/data/“ {
url.access-deny = („“)
}

$HTTP[„url“] =~ „^/owncloud($|/)“ {
dir-listing.activate = „disable“
}

Zusätzlich aktiviert sind die Konfigurationsdateien für SSL und fastcgi-php mit entsprechenden Detailanpassungen:

Hier die SSL-Konfiguration:

# /usr/share/doc/lighttpd/ssl.txt

$SERVER[„socket“] == „0.0.0.0:443“ {
ssl.engine = „enable“

# Contains certificate + key
ssl.pemfile = „/etc/lighttpd/ssl.pem“

# Contains ca-certificate and intermediate
ssl.ca-file = „/etc/lighttpd/chain.pem“

ssl.cipher-list = „ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM“
ssl.honor-cipher-order = „enable“
}

Und hier die Konfiguration für Fast-CGI:

# -*- depends: fastcgi -*-
# /usr/share/doc/lighttpd/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi

## Start an FastCGI server for php (needs the php5-cgi package)
fastcgi.server += ( „.php“ =>
((
„bin-path“ => „/usr/bin/php-cgi“,
„socket“ => „/var/run/lighttpd/php.socket“,
„max-procs“ => 1,
„allow-x-sendfile“ => „enable“,
„bin-environment“ => (
„PHP_FCGI_CHILDREN“ => „4“,
„PHP_FCGI_MAX_REQUESTS“ => „10000“,
„MOD_X_SENDFILE2_ENABLED“ => „1“
),
„bin-copy-environment“ => (
„PATH“, „SHELL“, „USER“
),
„broken-scriptfilename“ => „enable“
))
)

Bei Fragen einfach Fragen 🙂

2 Kommentare

  1. Hallo,

    vielen Dank für Deine Ausführungen. Ich betreibe Owncloud 7.0.2 unter lighttpd 1.4.35 mit PHP 5.6 auf einem Cubietruck.
    Allerdings habe ich ein Paar Probleme mit der Darstellung von Grafiken (.svg +.png) Dateien. Habe schon alles möglich ausprobiert und versucht – leider ohne Erfolg.
    Schicke auch gerne ein besoiel für die ‚gestörte‘ Anzeige!

    LG, Bleckie

  2. Du kannst mir gerne an dg9vh@darc.de mal ein paar Screenshots schicken, ich kann mir nämlich gerade nicht so richtig vorstellen, welche Probleme das sind. Evtl. kannst du mir auch eine gestörte PNG-Datei oder SVG-Datei zukommen lassen, damit ich mal bei mir schauen kann, ob’s bei mir auch einen gestörten Eindruck macht.

    Meine Idee wäre ja jetzt, dass evtl. irgendwie ein php-Modul fehlt oder ein Software-Paket, auf dem irgendein PHP-Modul aufbaut.

    Hast du mal geschaut, ob es im Error-Log bzw. auf der Administrationsseite ganz unten entsprechend irgendwelche Fehlermeldungen gibt, die weiterhelfen könnten?

    Kim

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

* Cookie-Opt-In: ich bin damit einverstanden, dass mein Name, meine E-Mail Adresse und meine Webadresse in diesem Browser gespeichert werden, bis ich wieder kommentiere (Datenschutzerklärung).