Hinweis nach DSGVO: Diese Website verwendet nicht personalisierte Anzeigen von Google Adsense und im Zusammehang damit Cookies. Weitere Informationen finden Sie in der Datenschutzerklärung.
logo mit Text lexexakt.de Werbung:
Artikel Diskussion (0)
nextcloud
(it.nextcloud)
    

Inhalt

  1. Übersicht
  2. Hardware
  3. Betriebssystem(debian/raspbian)
  4. apache2
  5. PHP
    1. notwendige Module
  6. nextcloud
  7. MariaDB
  8. https/let´s encrypt
    1. Erneuern
    2. Problem: "Record to long"
  9. Raid-System
  10. nmon

1. Übersicht

Nextcloud, PHP (z.B. Vers. 7.0), Webserver (z.B. apache2 oder nginx), Datenbank (postgres oder maria), Betriebssystem (z.B. Linux) und Hardware (z.B. raspberry Pi mit Harddisks) sind sechs verschiedene Komponenten die aufeinander aufbauen aber überwiegend austauschbar sind und zusammen den Betrieb einer "eigenen" cloud ermöglichen.

2. Hardware

Als Hardware kann ein raspberry oder ein beliebiger AMD/Intel-PC genutzt werden. Empfehlenswert der Einsatz von schnellen SSD-Platten um die Zugriffszeiten so kurz wie möglich zu halten. Dazu kommt ein Netzwerkanschluss mit möglichst hohem UP-/DOWN-Link, wenn die Cloud nicht nur im internen Netzwerk arbeiten soll.

3. Betriebssystem, z.B. Debian/raspian

Auf die Hardware setzt ein Betriebssystem auf, üblicherweise eine Linux-Variante. Raspbian für raspberry Pi oder debian für Desktopsysteme. Das gewählte Betriebssystem ist mittels Bootimages auf die gewünschte Hardware aufzuspielen. Bie Debian kann z.B. unter Windows mittels der Software Rufus eine USB-Stick/CD-ROM erstellt werden.

update debian/raspbian

$ sudo apt-get upgrade

$ sudo apt-get update

4. Webserver (apache2)

Da nextcloud ein webbasierter Dienst, muss ein Webserver, wie z.B. apache2 laufen.

Installation/Konfiguration

Um Apache zu installieren ist der Befehl:

apt-get install apache2 

Apache2 wird über

/etc/apache2/apache2.conf
und über die ins das Verzeichnis
/etc/apache2/mods-enabled
verlinkten Dateien aus dem Verzeichnis der verfügbaren (= available)
/etc/apache2/mods-available
konfiguriert. Das Gleiche gilt für die Konfigurationen (confs).

Beispiel: Nach der Installation von PHP müssen die beiden Dateien

php7.0.conf
und
php7.0.load
in das Verzeichnis
/etc/apache2/mods-enabled
verlinkt werden:
cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/php7.0.conf
sudo ln -s ../mods-available/php7.0.load

Mit dem Befehlt:

apachectl -t -D DUMP_MODULES

Können die geladenen Module angezeigt werden.

$ sudo service apache2 restart

error-log

/var/log/apache2/error.log

Notwendige weitere Installationspakete

  1. libapache2-mod-php
  2. wget [wird später für zum Download des nextcloud.zip gebraucht]
  3. unzip [wird zum auspacken des nextcloud.zip gebraucht]

5. PHP (7.3)

PHP (PHP: Hypertext Preprocessor) ist eine serverseitig interpretierte Seitenbeschreibungssprache mit der dynamischer HTML Code geschrieben werden kann. PHP muss in apache2 intergriert werden und kann insoweit als Modul von apache2 betrachtet werden.

Notwendige Module für PHP:

Folgenede Module müssen auch mit

apt-get install ...
geladen werden. Dass kann in einem Befehl zusammengefasst werden:
apt-get install php-xml php-cli ...
php-xml 
php-cli 
php-cgi 
php-mbstring 
php-gd 
php-curl 
Modul ZIP (php-zip)
Modul APCu

APCu (= APC User Cache) Ist eine Form des APC (Alternative PHP Cache) der zur Beschleunigung von Zugriffen auf PHP-Sites dient.

Ist Nextcloud für die Nutzung von APCu konfiguriert führt ein fehlen des Moduls zu einem "Internal Server Error".

nextcloud

Nextcloud selbst ist ein auf PHP basierender Dienst der innerhalb des Webservers apache2 läuft. Das Paket wird mit dem Befehl

wget https://download.nextcloud.com/server/releases/nextcloud-18.0.4.zip

heruntergeladen. Dabei sollte die 18.0.4 durch die aktuelleste Versionsnummer ersetzt werden, die man ggf. googlen kann.

Die Dateien sollten dann nach
/var/www/html/
verschoben werden mit
sudo mv nextcloud-18.0.4.zip /var/www/html/

Dort muss dass Paket dann "unziped" werden und der Inhalt in das html-Verzeichnis kopiert werden, dessen Rechte/Eigentümerschaft angepasstw werden müssen (www-data:www-data), damit apache2 zugreifen kann.

Maintenance-Mode

$ sudo -u www-data php occ maintenance:mode --on

$ sudo -u www-data php occ maintenance:mode --off
/var/www/html/

occ commandos ausführen

sudo -u www-data php occ [Kommando]

Die Configurationsdatei unter:

/var/www/html/config/

6. mariadb

Installation/Konfiguration

Installiert wird die Datenbank MariaDB/mySQL auch über

apt-get install mariadb-server 

Wichtig ist dass auch das php-Modul:

php-mysql
installiert worden ist/wird.

Es muss dann ein Root-User, eine Datenbank und ein Datenbanknutzer angelegt werden.

Augerufen wird die Datenbank über den Befehl:

mysql -u root -p

Auf das -u folgt der Nutzername (hier root), das -p führt zur Passwordabfrage.

Problem: Exception File Locked

nextcloud in maintenancemode versetzen!

$ sudo mariadb --password=XXXXX
MariaDB[(none)]>  show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| nextcloud          |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

MariaDB[(none)]> use nextcloud;
MariaDB[(none)]> delete from oc_file_locks where 1;
MariaDB[(none)]> exit;
$ 

maintenance-mode beenden!

https/letsencrypt.org

Unter:

:/etc/apache2/sites-available#

liegt eine Konfigurationdatei für den virtuellen SSL-Host z.B.

000-default-le-ssl.conf

Diese Konfiguration muss aktiviert werden mit dem Kommando

a2ensite 000-default-le-ssl.conf
und verweist auf den Speicherort für die Schlüsseldateien.

Z.B: /etc/letsencrypt/live/domain.de/

This directory contains your keys and certificates.

`privkey.pem`  : the private key for your certificate.
`fullchain.pem`: the certificate file used in most server software.
`chain.pem`    : used for OCSP stapling in Nginx >=1.3.7.
`cert.pem`     : will break many server configurations, and should not be used
                 without reading further documentation (see link below).

We recommend not moving these files. For more information, see the Certbot
User Guide at https://certbot.eff.org/docs/using.html#where-are-my-certificates.

Erneuern:

sudo /etc/letsencrypt/letsencrypt-auto renew

(...)
-------------------------------------------------------------------------------
Congratulations, all renewals succeeded. The following certs have been renewed:
  /etc/letsencrypt/live/sub.example.com/fullchain.pem (success)
-------------------------------------------------------------------------------

Achtung der Prozess benötigt an der Stelle

Creating virtual environment...
Installing Python packages...
mehrere Minuten für die Ausführung.

Nach Abschluss muss ggf. der Server (z.B. apache2) neu gestartet werden (siehe dort).

Problem: Fehlercode: SSL_ERROR_RX_RECORD_TOO_LONG

1. Https läuft über Port 443, daher muss der Port offen sein. Dass kann wie folgt überprüft werden:

$ nmap host.com

Starting Nmap 7.01 ( https://nmap.org ) at 2019-10-12 13:15 CEST
Nmap scan report for host.com (192.168.178.35)
Host is up (0.020s latency).
Other addresses for host.com (not scanned): 2003:dd:9f48:de00:ec7a:6c4d:6313:7bff
Not shown: 995 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
139/tcp open  netbios-ssn
443/tcp open  https
445/tcp open  microsoft-ds

Nmap done: 1 IP address (1 host up) scanned in 0.48 seconds

2. Der virtuelle SSL host (VHOST) muss aktiviert sein:

apachectl -t -D DUMP_VHOSTS
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
*:443                  host.com (/etc/apache2/sites-enabled/000-default-le-ssl.conf:2)
*:80                   127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)

Läuft kein virtueller Host für https auf Port 443 muss dieser host aktiviert werden. Siehe oben.

DynDNS

RAID-System

Alle Blockdevices anzeigen:

$ blockdev --report

sudo apt-get install mdadm -y

sudo mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sda1 /dev/sdb1

Status abfragen

cat /proc/mdstat

Auswerten:;

  • [UU]
    Array ist intakt und synchron
  • [U_]
    Eine Platte ist nicht synchron

Ist eine Platte nicht synchron ist es sinnvoll die Details abzufragen:

Details abfragen

$ mdadm --detail /dev/md0

Je nach Status muss die fehlende Platte wieder hinzugefügt (siehe unten) oder ein resync durchgeführt werden.

Platte entfernen

$ mdadm /dev/md1 -r /dev/sdb1

Platte hinzufügen

$ mdadm /dev/md0 -a /dev/sdb1

nmon

Mit nmon kann über die Konsole ein ...

Werbung:

Auf diesen Artikel verweisen: keine Verweise