Rss

4WD NAS Projekt

 

ownCloud

Diesmal erstellen wir das Jail über das FreeNAS WebUI (Jails->ADD). In diesem Beispiel habe ich eine dedizierte Netzwerkkarte nur für ownCloud ausgewählt, sodass ich den gesamten Traffic per VLAN vom restlichen Netzwerk trennen kann. Falls dies bei euch nicht möglich ist, müsst ihr die Box VNET anklicken, das IPv4 Interface ändert sich entsprechend automatisch:

Ähnlich wie bei PLEX erstellen wir Verbindungen zwischen NAS und Jail, wobei wir vorher noch zwei Datasets erzeugen. Ebenfalls um Backups später zu erleichtern, in Data liegen später die in die Cloud hochgeladenen Dateien und db ist der Speicherort der MySQL Datenbank:

Mounts lassen sich über das WebUI erstellen. Dazu rechts auf die drei Punkte des entsprechenden Jails und dort auf Mount points klicken. Hier erzeugen wir folgendes:

 

In Putty meldet ihr euch ganz normal auf dem NAS an, jetzt zuerst folgendes eingeben (wie auch schon bei PLEX müsst ihr die Befehle natürlich entsprechend eurer Ordnerstruktur anpassen):

zfs set primarycache=metadata Volume/Sys/db

mit diesem Befehl verbindet man sich dann anschließend mit dem Jail, sodass alle folgenden Eingaben nur das Jail OS betreffen:

iocage console owncloud

Alles auf den neusten Stand bringen:

pkg upgrade

Nachfrage nach Paketservice Installation mit Y bestätigen.

pkg install nginx mariadb101-server redis php70-bz2 php70-ctype php70-curl php70-dom php70-exif php70-fileinfo php70-filter php70-gd php70-hash php70-iconv php70-intl php70-json php70-mbstring php70-mcrypt php70-pdo_mysql php70-openssl php70-posix php70-session php70-simplexml php70-xml php70-xmlreader php70-xmlwriter php70-xsl php70-wddx php70-zip php70-zlib php70-opcache

portsnap fetch extract

Beim Step verify dauert es etwas länger, also nicht wundern.

make config-recursive install -C /usr/ports/databases/pecl-redis

Standard Einstellungen – jedes Fenster mit OK bestätigen.

make config-recursive install -C /usr/ports/devel/pecl-APCu

sysrc 'nginx_enable=YES' 'php_fpm_enable=YES' 'mysql_enable=YES' 'redis_enable=YES'

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

 

Folgendes lässt sich am Einfachsten mit dem Programm WinSCP erledigen, anmelden tut man sich hier wie bei Putty, allerdings lassen sich jetzt bequem über ein Browser die Dateien suchen und auch bearbeiten. In den einzelnen Dateien einfach den Befehl suchen und den Wert entsprechend anpassen.

unter /mnt/Volume/iocage/jails/owncloud/root/usr/local/etc/nginx bearbeitet ihr die Datei nginx.conf und passt die worker_processes entsprechend eurer CPU Threads an, die ihr für die ownCloud Website bereitstellen wollt. In der php.ini unter /mnt/Volume/iocage/jails/owncloud/root/usr/local/etc/ müssen diese Zeilen angepasst werden:

cgi.fix_pathinfo=0
date.timezone = Europe/Berlin
apc.enable_cli=1

upload_max_filesize = 6G

post_max_size = 6G

Letzteres erlaubt auch das Hochladen von größeren Dateien (im Beispiel max. 6GB), dazu sind allerdings noch weitere Änderungen nötig – später mehr.

In der www.conf unter /mnt/Volume/iocage/jails/owncloud/root/usr/local/etc/php-fpm.d

listen = /var/run/php-fpm.sock
listen.owner = www
listen.group = www
env[PATH] = /usr/local/bin:/usr/bin:/bin

Die my.cnf in /mnt/Volume/iocage/jails/owncloud/root/usr/local/etc/ bekommt folgenden Inhalt:

[server]
skip-networking
skip-name-resolve
expire_logs_days = 1
innodb_flush_method = O_DIRECT
skip-innodb_doublewrite
innodb_flush_log_at_trx_commit = 2
innodb_file_per_table

Im selben Verzeichnis müssen in der redis.conf diese Werte angepasst werden:

port 0
unixsocket /tmp/redis.sock
unixsocketperm 777

 

Jetzt kann es endlich mit der Datenbank-Erstellung bzw. der Installation von ownCloud selber weitergehen. Diese Befehle werden jetzt wieder bei Putty, im Jail eingegeben:

service nginx start && service php-fpm start && service mysql-server start && service redis start

mysql -e "CREATE DATABASE owncloud;"

mysql -e "GRANT ALL PRIVILEGES ON owncloud.* TO 'ocuser'@'localhost' IDENTIFIED BY 'PASSWORT';"

PASSWORT muss natürlich mit einem von euch vergebenen Passwort ersetzt werden.

mysql -e "FLUSH PRIVILEGES;"

mysql_secure_installation

 

Zur Info:

anonymous users löschen
disallow root login remotely YES
testdatabase delete y
reload privilege tables now y

 

ownCloud laden

fetch "https://download.owncloud.org/community/owncloud-10.3.0.tar.bz2"

Den Befehl müsst ihr evtl. nochmal anpassen, je nachdem ob es schon eine neuere Version gibt – nachprüfen könnt ihr das bei ownCloud unter Downloads, Tarball.

tar jxf owncloud-*.tar.bz2 -C /usr/local/www

rm owncloud-*.tar.bz2

chown -R www:www /usr/local/www/owncloud /mnt/data

 

crontab -u www -e

„i“ drücken

*/15 * * * * /usr/local/bin/php -f /usr/local/www/owncloud/occ system:cron

rechtsklick um kopiertes einzufügen
ESC um zurück in den Befehlsmodus zu gelangen
:wq zum Speichern und beenden vom Editor

 

FERTIG.

Unter der im ersten Schritt festgelegten IP sollte sich die Cloud nun über einen Browser erreichen lassen. Hier wird wie bei PLEX eine Erstkonfiguration durchgeführt:

Übernehmt folgende Einstellungen, zumindest, wenn ihr zu Beginn genau das gleiche Datenverzeichnis gesetzt habt. Die Punkte stehen natürlich für das Passwort, was beim MySQL Datenbank-Setup genutzt wurde.

Auch dieser Setup sollte relativ selbsterklärend und ohne Probleme durchlaufen. Im Anschluss findet ihr euch vor der fertig eingerichteten Cloud wieder.

Ein letzter Satz Befehle in Putty im Jail:

su -m www -c 'php /usr/local/www/owncloud/occ config:system:set memcache.local --value="\OC\Memcache\APCu"'

su -m www -c 'php /usr/local/www/owncloud/occ config:system:set memcache.locking --value="\OC\Memcache\Redis"'

su -m www -c 'php /usr/local/www/owncloud/occ config:system:set redis host --value="/tmp/redis.sock"'

su -m www -c 'php /usr/local/www/owncloud/occ config:system:set redis port --value=0 --type=integer'

 

Mittels des Admin Accounts müssen jetzt nur noch User angelegt werden. Außerdem müsst ihr euch ein Dynamic DNS Anbieter suchen und die Ports 80 bzw. 443 fordwarden. Sonst ist die Cloud nicht aus dem Internet erreichbar. Dazu gibt es aber etliche How To´s bzw. weicht dies auch immer etwas ab, je nachdem was für einen Router ihr nutzt. Um den Rahmen hier nicht zu sprengen über lasse ich euch das mal selber.

 

Bezüglich dem Upload von größeren Dateien müssen wir noch folgende Werte in ein paar Files anpassen:

/mnt/Volume/iocage/jails/owncloud/root/usr/local/etc/nginx/nginx.conf

client_max_body_size 6G

/mnt/Volume/iocage/jails/owncloud/root/usr/local/www/owncloud/.htaccess

php_value upload_max_filesize = 6G
php_value post_max_size = 6G

 

folgendes hatten wir schon zu Beginn geändert, aber nur nochmal damit es im kompletten hier steht:

/mnt/Volume/iocage/jails/owncloud/root/usr/local/etc/php.ini

post_max_size = 6G
upload_max_filesize = 6G

 

G steht dabei für GB und kann natürlich nach belieben angepasst werden.

 

Gerade ownCloud ist doch etwas komplizierter aufzusetzen, hoffe ich konnte da etwas Licht rein bringen, falls ihr Fragen habt, schreibt es in die Kommentare oder eröffnet einen Thread in unserem Forum.

 

Inhaltsverzeichnis:

  1. Startschuss des 4WD NAS Projekts
  2. Auswahl der Hardware für das 4WD NAS
  3. FreeNAS Installation
  4. FreeNAS Einrichtung
  5. PLEX Installation
  6. ownCloud Installation