Boxpirates Wiki >>> Cloud

Aus Boxpirates Wiki
Wechseln zu: Navigation, Suche

BAUSTELLE

UnderConstruction.gif
Bildschirmfoto 2014-10-21 um 22.50.49.png

Owncloud ist inzwischen der Klassiker, wenn es darum geht, sich “eine eigene Cloud” zu installieren.

Warum liegt auf der Hand: Auf jedem Webspace zu installieren, einfach in der Installation und Handhabung, wie auch ein ausgebautes Webinterface.

Möchte man seine Daten jedoch nicht auf einem angemieteten Webspace ablegen, so bietet es sich an, Owncloud auf den Raspberry Pi zu installieren.

Voraussetzungen

Zunächst installieren wir nginx mit PHP (genauer php5-fpm) auf dem Raspberry Pi.

Wir setzten bewusst auf nginx anstatt auf Apache2, da dieser Webserver wesentlich weniger Ressourcen benötigt.

Systemvoraussetzungen ändern

Nun empfiehlt es sich, den Raspberry Pi noch zu übertakten (nicht zwingend notwenig), Des Weiteren müssen wir den SWAP erweitern.

Installieren von PHP-Modul

Wir installieren jetzt noch das PHP-Modul php-apc für ein einfaches Caching und sqlite3 als Datenbank.

Wir verwenden absichtlich SQLite3 anstatt MySQL, da letztere Datenbank den CPU des Raspberry Pi zu sehr beanspruchen würde,

woraus eine meiner Erfahrung mit dem Raspberry Pi nach schlechtere Performance resultieren würde.

  • sudo apt-get install php-apc php5-sqlite sqlite3

Anpassen der PHP.ini

Damit wir später auch größere Dateien über Owncloud speichern können, müssen wir upload_max_filesize und post_max_size entsprechend anpassen.

Ich setzte das Limit auf 1024 MB. In dem Editor nano kann man mittels STRG + X, Y und Enter speichern.

  • sudo nano /etc/php5/fpm/php.ini
upload_max_filesize = 2M
post_max_size = 8M

ersetzen durch

upload_max_filesize = 1024M
post_max_size = 1024M

Ebenfalls in der php.ini fügen wir am Ende der Datei folgende Zeilen ein um das Caching zu aktivieren und den temporären Uploadpfad zu definieren.

  • sudo nano /etc/php5/fpm/php.ini
upload_tmp_dir = /srv/http/owncloud/data
extension = apc.so
apc.enabled = 1
apc.include_once_override = 0
apc.shm_size = 256

Temporären Ordner anlegen

Nun legen wir den Ordner, den wir gerade als temporären Uploadpfad definiert haben, an und geben diesem Ordner entsprechende Rechte beschrieben zu werden.

  • sudo mkdir -p /srv/http/owncloud/data
  • sudo chown www-data:www-data /srv/http/owncloud/data

unter www erreichbar machen

Damit Owncloud später direkt unter der IP-Adresse oder DynDNS ohne Pfadangabe erreichbar ist, ersetzen wir in der Datei /etc/nginx/sites-available/default die folgende Zeile.

  • sudo nano /etc/nginx/sites-available/default
root /usr/share/nginx/www;

ersetzen durch

root /var/www/owncloud;

Einträge ersetzen

Des Weiteren müssen wir noch folgende Zeilen durch die darauf folgenden ersetzen, da nginx nicht mit der .htaccess Datei von Owncloud umgehen kann.

  • sudo nano /etc/nginx/sites-available/default
location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ /index.html;
		# Uncomment to enable naxsi on this location
		# include /etc/nginx/naxsi.rules
	}

ersetzen durch

    client_max_body_size 10G; # set max upload size
    fastcgi_buffers 64 4K;
 
    rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
    rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
    rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
 
    error_page 403 = /core/templates/403.php;
    error_page 404 = /core/templates/404.php;
 
    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }
 
    location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
            deny all;
    }
 
    location / {
            # The following 2 rules are only needed with webfinger
            rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
            rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
 
            rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
            rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
 
            rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
 
            try_files $uri $uri/ index.php;
    }

    location ~ ^(.+?\.php)(/.*)?$ {
            try_files $1 = 404;
 
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$1;
            fastcgi_param PATH_INFO $2;
            fastcgi_param HTTPS on;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
    }

    # Optional: set long EXPIRES header on static assets
    location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
            expires 30d;
            # Optional: Don't log access to assets
            access_log off;
    }

Reiter 13:04, 19. Okt. 2014 (CEST)