ownCloud 5 in FreeNAS 9.1 Jail oder FreeBSD installieren

Der FreeNAS Wiki-Artikel Adding Jails erläutert die Installation der Plugins-Jail.

Verbindet man sich danach via SSH zur FreeNAS-Box, kann man mittels Befehl “jexec 1 tcsh” in die entsprechende Jail wechseln und die notwendige Installation vornehmen.
Achtung: Die Ziffer variiert. Die korrekte kann man mit dem Befehl “jls” herausfinden.

Der anschließende Installationsverlauf funktioniert gleich wie außerhalb einer FreeBSD-Jail und ist im Folgenden erläutert. Die Anleitung ist mit FreeNAS 8.2 getestet.

Ports-Tree aktualisieren

portsnap fetch extract

portsnap(8)

ownCloud aus den Ports installieren

Beim Verfassen dieses Artikels ist 5.0.10 die aktuelle ownCloud-Version in den Ports.

Die Installation aus den Ports bringt zwei Vorteile: Einerseits werden dabei alle Paketabhängigkeiten konfiguriert und installiert. Zieht die Version aus den FreeBSD-Ports einst nach, erhält man zudem passende portaudit Berichte.

Beim Konfigurieren des PHP-Ports in folgendem Schritt muss Build FPM version ausgewählt sein. CLI und CGI können abgewählt werden.

cd /usr/ports/www/owncloud
make config-recursive
make install clean

PHP-FPM auf Socket umstellen und Transfer-Limits erhöhen

# PHP-FPM auf Socket umstellen
sed -i '' -e 's/^listen =.*/listen = \/var\/run\/php5-fpm.sock/g' /usr/local/etc/php-fpm.conf

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

# Größere Uploads ermöglichen
sed -i '' -e 's/^post_max_size =.*/post_max_size = 300M/g' /usr/local/etc/php.ini
sed -i '' -e 's/^upload_max_filesize =.*/upload_max_filesize = 200M/g' /usr/local/etc/php.ini

sed(1)

nginx installieren

Beim Konfigurieren des nginx-Ports in folgendem Schritt muss HTTP_SSL Enable http_ssl module ausgewählt sein.

cd /usr/ports/www/nginx && make install clean

SSL Zertifikat für nginx erzeugen

Eine rasche Methode hierfür ist im Beitrag SSL Zertifikat erzeugen und direkt in die nginx.conf übernehmen erklärt.

nginx konfigurieren

Um sämtliche Funktionen von ownCloud nutzen zu können, müssen im server-Abschnitt (HTTPS) der /usr/local/etc/nginx/nginx.conf die kommentierten Bereiche freigestellt und folgende Einträge an Stelle der vorhandenen location-Direktiven eingefügt werden.

        root /usr/local/www/owncloud;
        client_max_body_size 200m; # 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;

        index index.php;
        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;
        }

Quelle: ownCloud Administrators Manual

nginx und PHP-FPM dauerhaft aktivieren und starten

echo 'nginx_enable="YES"' >> /etc/rc.conf
echo 'php_fpm_enable="YES"' >> /etc/rc.conf

/usr/local/etc/rc.d/php-fpm start
/usr/local/etc/rc.d/nginx start

echo(1), rc.conf(5)

Zur ownCloud-Weboberfläche verbinden

Nun kann man sich via Browser zur ownCloud-Installation verbinden und die Software in vollem Umfang nutzen.

Die entsprechende IP-Adresse der Plugins-Jails kann man in der FreeNAS-Weboberfläche unter Services > Plugins > Management > Settings einsehen.

Tipp: Ein weiterer Artikel beschreibt, wie man die Dateien aus FreeNAS direkt in ownCloud verfügbar machen kann.

2 Kommentare

  1. Marcus Schmitt sagt:

    Hallo,
    ich bin gerade eben nach deiner Anleitung vorgegangen sehe aber folgende Fehlermeldung im Admin Bereich. Hattest du die selben Fehlermeldungen ?
    (1) Dein Web-Server ist noch nicht für Datei-Synchronisation bereit, weil die WebDAV-Schnittstelle vermutlich defekt ist. Bitte prüfe die Instalationsanleitungen.
    (2) Dieser ownCloud Server kann die Ländereinstellung nicht auf en_US.UTF-8/en_US.UTF8 ändern. Dies bedeutet dass es Probleme mit bestimmten Zeichen in Dateinamen geben könnte. Wir empfehlen die für en_US.UTF-8/en_US.UTF8 benötigten Pakete auf ihrem System zu installieren.
    (3) Keine Netzwerkverbindung Dieser ownCloud Server hat keine funktionierende Netzwerkverbindung. Dies bedeutet das einige Funktionen wie das Einbinden von externen Speichern, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Fernzugriff auf Dateien und das Senden von Benachrichtigungsmails funktioniert eventuell ebenfalls nicht. Wir empfehlen die Netzwerkverbindung für diesen Server zu aktivieren wenn Du alle Funktionen von ownCloud nutzen möchtest.
    Gruß Marc

  2. Dice sagt:

    Das klingt nach fehlenden Abhängigkeiten.

    Prüfe eventuell nochmals des Schritt @make config-recursive@ um zu sehen, ob dort alle notwendigen Optionen markiert sind.

    Da es sich um FreeBSD 9.1 handelt, sollte dir die pkgng-Infrastruktur zur Verfügung stehen. Du könntest somit auch testweise @pkg install owncloud@ ausführen und abbrechen, wenn du zum ersten Mal um Bestätigung gefragt wirst. Du siehst dann die Liste der Abhängigkeiten die das System installieren würde.

    Es ist natürlich auch möglich gänzlich mit pkgng zu arbeiten. Allerdings überschreibt das selbst-gewählte Optionen aus @make config@ und ist somit nur empfehlenswert, wenn man mit den Standardeinstellungen zufrieden ist.

    Grundsätzlich ist pkgng aber sehr gut gelöst und ich verwende es mittlerweile wann immer möglich.