ownCloud 4.5 in FreeNAS Plugins-Jail oder FreeBSD installieren

Der FreeNAS Wiki-Artikelabschnitt Installing the Plugins Jail 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.

Warnung vor möglichem Datenverlust

Ein späteres Update der Plugins-Jail führt zum Verlust der hier beschriebenen Einrichtung und der darin befindlichen persönlichen ownCloud-Daten.

Um das zu verhindern, könnte eine gesonderte Jail exklusiv für ownCloud eingerichtet werden.

Die bessere Integration in die FreeNAS-Weboberfläche spricht allerdings für die Nutzung der Plugins-Jail. Regelmäßige Datensicherungen in Kombination mit dieser Anleitung erleichtern das erneute Einrichten nach einem Update.

Diese Anmerkung bezieht sich ausschließlich auf Updates in der Plugins-Jail. Updates des FreeNAS-Hauptsystems können wie gewohnt durchgeführt werden, da diese die Jails grundsätzlich unberührt lassen.

Ports-Tree aktualisieren und Konflikt-Pakete entfernen

portsnap fetch extract
pkg_delete -f perl-5.12.4_3 pkg-config-0.25_1 pcre-8.21

portsnap(8), pkg_delete(1)

ownCloud aus den Ports installieren

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

Obwohl letztendlich ownCloud 4.5.0 installiert werden soll, bringt die Installation aus den Ports zwei Vorteile: Einerseits werden dabei annähernd 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

Zusätzliche Abhängigkeiten installieren

Sowohl zlib als auch iconv werden von ownCloud benötigt.

cd /usr/ports/archivers/php5-zlib && make install clean
cd /usr/ports/converters/php5-iconv && make install clean

ownCloud 4.5.0 installieren

cd /usr/local/www/
fetch http://download.owncloud.org/releases/owncloud-4.5.0.tar.bz2
tar xjf owncloud-4.5.0.tar.bz2 -C /root/
mv /root/owncloud /usr/local/www/owncloud-4.5
chown -R www:www /usr/local/www/owncloud-4.5

fetch(1), tar(1)

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

# PHP-FPM auf Socket umstellen
sed -i '' -e 's/^listen =.*/listen = \/var\/run\/php-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

# Größere Downloads für Client-Apps ermöglichen (siehe untenstehende Anmerkung)
sed -i '' -e 's/^memory_limit =.*/memory_limit = 512M/g' /usr/local/etc/php.ini

sed(1)

Anmerkung zu memory_limit

Vor dem Herunterladen mittles ownCloud Client-App (beispielsweise auf Android), wird die betreffende Datei zuerst gänzlich in den Hauptspeicher geladen. Ist die Datei größer als das konfigurierte memory_limit, schlägt der Download mit folgender Meldung fehl:

PHP message: PHP Fatal error: Allowed memory size of ${memory_limit} bytes exhausted

An Stelle von ${memory_limit} wird dabei der enstprechend konfigurierte Wert ausgegeben.
Dieses Verhalten wurde zuletzt in ownCloud Version 4.5.1 verifiziert.

nginx installieren

Beim Konfigurieren des nginx-Ports in folgendem Schritt muss 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 folgende Einträge gesetzt werden.

        root /usr/local/www/owncloud-4.5;
        client_max_body_size 200m;

        location / {
                index  index.html index.htm index.php;
                # http://forum.owncloud.org/viewtopic.php?f=3&t=2952&p=7158#p7157
                rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
                rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
                rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
                rewrite ^/apps/calendar/caldav.php /remote.php/caldav/ last;
                rewrite ^/apps/contacts/carddav.php /remote.php/carddav/ last;
                rewrite ^/apps/([^/]*)/(.*\.(css|php))$ /index.php?app=$1&getfile=$2 last;
                rewrite ^/remote/(.*) /remote.php/$1 last;

                fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param   SCRIPT_NAME     $fastcgi_script_name;
                fastcgi_param   PATH_INFO       $fastcgi_path_info;

                try_files $uri $uri/ @webdav;
        }

        location ~ \.php$ {
                # http://bugs.owncloud.org/thebuggenie/owncloud/issues/oc-902#comment_1_904_8388
                #fastcgi_split_path_info ^(.+\.php)(/.*)$;
                include         fastcgi_params;
                fastcgi_pass    unix:/var/run/php-fpm.sock;
                fastcgi_index   index.php;

                fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param   SCRIPT_NAME     $fastcgi_script_name;
                fastcgi_param   PATH_INFO       $fastcgi_path_info;

                try_files $uri =404;
        }

        # owncloud WebDAV
        location @webdav {
                fastcgi_split_path_info ^(.+\.php)(/.*)$;
                fastcgi_pass    unix:/var/run/php-fpm.sock;

                fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param   SCRIPT_NAME     $fastcgi_script_name;
                fastcgi_param   PATH_INFO       $fastcgi_path_info;

                fastcgi_param   HTTPS on;
                include         fastcgi_params;
        }

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 restart
/usr/local/etc/rc.d/nginx restart

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.

10 Kommentare

  1. Zehbart sagt:

    Ganz blöde Frage: Wie bekomme ich denn bei Freenas 8.3 im Shell einen Backslash hin?? (Brauche ich im Abschnitt "PHP-FPM auf Socket umstellen und Transfer-Limits erhöhen"). Ich finde keine funktionierenden Tastenkombination und Copy/Paste tut es auch nicht...
    gruß zehbart

  2. Dice sagt:

    Je nachdem wie du verbunden bist, ist möglicherweise ein anderes Tastaturlayout als dein Übliches aktiv.

    Falls du also meinst, dass es daran scheitert, hier ein paar Varianten:

    * US-Layout: Einfach die Rautetaste (#) drücken
    * DE-Layout: AltGr + scharfes S (ß)
    * NEO-Layout: Mod3 + Buchstabe I (i)

    Wenn du lokal am System arbeitest, könnte für dich das Kommando 'kbdmap' hilfreich sein.

  3. Sergej sagt:

    Hey und wie gehts jez weiter wie komme ich in die benutzer web oberfläche oder wie auch immer?

  4. Dice sagt:

    @Sergej

    Um zur *ownCloud-Weboberfläche* zu gelangen, rufst du die *IP Adresse der Plugins-Jail* im Browser auf. Wie du diese herausfindest, habe ich soeben am Ende des Artikels ergänzt.

    Für ownCloud selbst kannst du dich dann der offiziellen Dokumentation des Projekts bedienen.

  5. Sergej sagt:

    Hi nochmal,
    ich habe nun alles gemacht aber bei mir kommt nur die standart index von engineex
    [...]
    wenn ich ip/owncloud versuche dann sagt er gibts nicht
    was könnte ich falsch gemacht haben?

  6. Sergej sagt:

    Hey, WAHNSINN!!! Ich bin echt glücklich dadrüber, es hat geklappt. Es war folgendes noch zu tun: Im HTTPS Serverabschnitt muss man das auskommentierte listen 443 und servername eingeben dann ging das. Echt hammer bin echt dankbar für diese Wertvolle Anleitung, weiter so Jungs!!! Ich danke vielmals :)

  7. Dice sagt:

    @Sergej

    Freut mich sehr, dass dir der Artikel gefallen und bei der Einrichtung geholfen hat!

    Danke auch für den Hinweis. Er ist für die Leser sicher wertvoll.

  8. marcel sagt:

    Hallo zusammen,
    ich habe das Problem dass ich unter /usr/ keinen ports ordner habe? Warum? Was kann ich tun? wäre euch super dankbar.
    mfg Marcel

  9. Dice sagt:

    @marcel

    Die Ports-Sammlung kannst du mit *portsnap* erstellen und verwalten (siehe dazu den entsprechenden Abschnitt im Artikel).

    Auch das FreeBSD-Handbuch ist sehr hilfreich:
    http://www.freebsd.org/doc/de/books/handbook/ports-using.html

  10. Sergej sagt:

    Hi, du musst in FreeNAS die Konsole auf deutsch stellen dann mit SHIFT+7 und der "andere slash" ALTGR + ß. Auf englisch musst du halt äöüß´+#-., mit SHIFT Komibnation ausprobieren die Tasten

Hinterlasse eine Antwort

Deine E-Mail-Adresse bleibt geheim. Erforderliche Felder sind markiert *

*

Du kannst Textile-Formatierungen benutzen.