Es existiert eine vereinfachte und aktualisierte Version dieses Artikels: ownCloud 5 in FreeNAS 9.1 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
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
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
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 die kommentierten Bereiche freigestellt und folgende Einträge an Stelle der vorhandenen location-Direktiven eingefügt 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 start
/usr/local/etc/rc.d/nginx start
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.