Setup Nextcloud mit Nextant Tesseract-ocr und solr Stats

Ich bin es Mal wieder. Poste nun eine kleine Anleitung wie ich bei mir auf dem Server Nextcloud samt Nextant zum indexieren installiert habe. Bei diesem Tutorial nehmen wir an das wir einen nackten Server haben wo noch nichts installiert ist.

Dazu benötigen wir LAMP was folgendes beinhaltet:

  • apache2 (Apache 2.4)
  • libapache2-mod-php7.0
  • php7.0
  • php7.0-mysql
  • mysql-server

Fangen wir an.

 

Inhaltsverzeichnis:

  1. Mysql Installation
  2. Apache Installation
  3. Nextcloud Installation
  4. Nextant Installation

 

 

Mysql  Installation:

Zuerst machen wir ein Update des Servers dazu nutzen wir sudo apt-get Update. Anschließend installieren wir alle aufgelisteten Dinge in einem Rutsch.

sudo apt-get install apache2 libapache2-mod-php7.0 php7.0 php7.0-mysql mysql-server

Ihr werdet nun nach einigen Dingen gefragt die ihr mit Y beantwortet bei der Installation des Mysql Servers werdet ihr gefragt nach einem Mysql „Root“ User und einem Passwort.
Lasst beides nicht leer, nehmt beispielsweise „Admin“ als den User und denkt euch ein schweres Passwort aus.

Wenn die Installation erledigt ist, prüft die Installation mit diesem Befehl mysql_secure_installation.
Dazu werdet ihr nach dem gerade erstellten Passwort gefragt. Wenn das eingegeben ist, wird man gefragt ob man mit VALIDATE PASSWORD PLUGIN Passwörter überprüfen möchte die in Zukunft genutzt werden für die Datenbank. Das macht Sinn, denn so ist die Nutzung von unsicheren Passwörtern nicht möglich.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No:

An dieser Stelle wird man gefragt welches Level der Passwortvalidierung man nutzen möchte. Wählt hier die 2 für Medium.

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

Nach dem auswählen des Levels werdet ihr gefragt ob ihr das Mysql-Root Passwort ändern wollt, wollt ihr das nicht drückt „n“

Jetzt gehts weiter mit der Installation von PHP und Apache2…

Da ja PHP schon installiert ist muss die Installation etwas angepasst werden, nämlich in wie weit PHP Dateien ausführen soll wenn ein Verzeichnis betreten wird. Wir wollen auf unserem Server das nach einer index.php und dann nach einer index.html gesucht wird.

Dazu öffnet ihr

sudo nano /etc/apache2/mods-enabled/dir.conf

Der Inhalt sollte so aussehen.

 DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

 

Hier steht index.html direkt nach DirectoryIndex. Wir wollen nun index.php nach vorne setzen und ändern den Inhalt in

DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

 

Mit STRG+X + J die Bearbeitung abschliessen und das File verlassen.

mit

sudo systemctl restart apache2

Apache neu starten und den Status überprüfen

sudo systemctl status apache2

Die Ausgabe sollt wie folgt sein (Beispsiel):

● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Wed 2016-04-13 14:28:43 EDT; 45s ago
Docs: man:systemd-sysv-generator(8)
Process: 13581 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 13605 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Tasks: 6 (limit: 512)
CGroup: /system.slice/apache2.service
├─13623 /usr/sbin/apache2 -k start
├─13626 /usr/sbin/apache2 -k start
├─13627 /usr/sbin/apache2 -k start
├─13628 /usr/sbin/apache2 -k start
├─13629 /usr/sbin/apache2 -k start
└─13630 /usr/sbin/apache2 -k start

Apr 13 14:28:42 ubuntu-16-lamp systemd[1]: Stopped LSB: Apache2 web server.
Apr 13 14:28:42 ubuntu-16-lamp systemd[1]: Starting LSB: Apache2 web server...
Apr 13 14:28:42 ubuntu-16-lamp apache2[13605]: * Starting Apache httpd web server apache2
Apr 13 14:28:42 ubuntu-16-lamp apache2[13605]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerNam
Apr 13 14:28:43 ubuntu-16-lamp apache2[13605]: *
Apr 13 14:28:43 ubuntu-16-lamp systemd[1]: Started LSB: Apache2 web server.

Nun konfigurieren wir noch den Apache.
Zuerst prüfen wir die Installation, dies machen wir mit sudo apache2ctl configtest
Ausgabe ist ähnlich dieser:

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
Syntax OK

Jetzt wird die Konfigurationsdatei bearbeitet:

sudo nano /etc/apache2/apache2.conf

Am ende der Datei tragt ihr folgendes ein ServerName Domain oder IP-Adresse
Die Bearbeitung wieder abschließen und einen Configtest durchführen mit sudo apache2ctl configtest anschliessend den Apache neu starten sudo systemctl restart apache2.

Nun muss die Firewall noch den Traffic durchlassen. Dazu wird nun einiges angepasst.

sudo ufw app list
Ausgabe:

Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

Wenn man die Ausgabe von Apache Full ansieht, sollten dort die Ports 80,443/tcp angegeben sein.

sudo ufw app info „Apache Full“
Ausgabe:

Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.

Ports:
80,443/tcp

Mit sudo ufw allow in "Apache Full" werden die Ports zugelassen für ein und ausgehenden Traffic.

Ruft man jetzt http://deineDomain.tld oder IP sollte die Apache Standard Seite erscheinen.

abschliessend installieren wir noch mit apt-get install php-cli.

Nun können wir eine Testseite einrichten und schauen ob alles richtig läuft.

Erstellt die Datei sudo nano /var/www/html/info.php

mit diesem Inhalt:

ruft man nun http://deineDomain.tld/info.php auf wird eine PHP Infoseite angezeigt.

Damit wäre die Installation abgeschlossen.
Aber wir sind noch nicht am Ende.

Nextcloud Installation:

Nun geht es an die Installation von Nextcloud.

Damit Nextcloud überhaupt läuft brauchen wir noch einige Dateien die installiert werden müssen.

sudo apt-get install libxml2-dev php-zip php-dom php-xmlwriter php-xmlreader php-gd php-curl php-mbstring

sowie

sudo a2enmod rewrite

 

Anschliessend den Apache neu starten

sudo service apache2 restart

 

geht anschliessend in das Web-Verzeichnis /var/www

Nun besorgt ihr euch Nextcloud und laden diese Dateien direkt auf den Server und entpackt es.

cd /var/www
sudo wget https://download.nextcloud.com/server/releases/nextcloud-12.0.0.zip && sudo unzip nextcloud-12.0.0.zip

Damit alle Berechtigungen stimmen für die installation, erstellt ein Script mit dem Namen nextcloud_permissions.sh
und diesem Inhalt:

#!/bin/bash
ocpath='/var/www/nextcloud'
htuser='www-data'
htgroup='www-data'
rootuser='root'

printf "Creating possible missing Directories\n"

mkdir -p $ocpath/data

mkdir -p $ocpath/assets

mkdir -p $ocpath/updater

printf "chmod Files and Directories\n"

find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640

find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750

printf "chown Directories\n"

chown -R ${rootuser}:${htgroup} ${ocpath}/

chown -R ${htuser}:${htgroup} ${ocpath}/apps/

chown -R ${htuser}:${htgroup} ${ocpath}/assets/

chown -R ${htuser}:${htgroup} ${ocpath}/config/

chown -R ${htuser}:${htgroup} ${ocpath}/data/

chown -R ${htuser}:${htgroup} ${ocpath}/themes/

chown -R ${htuser}:${htgroup} ${ocpath}/updater/

chmod +x ${ocpath}/occ

printf "chmod/chown .htaccess\n"

if [ -f ${ocpath}/.htaccess ]

then

chmod 0644 ${ocpath}/.htaccess

chown ${rootuser}:${htgroup} ${ocpath}/.htaccess

fi

if [ -f ${ocpath}/data/.htaccess ]

then

chmod 0644 ${ocpath}/data/.htaccess

chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess

fi

 

macht diese Datei ausführbar mit

chmod -x nextcloud_permissions.sh

 

Das war schon recht viel für den Anfang, aber es geht weiter. 🙂

Erstellt jetzt die Apache Konfiguration für Nextcloud

nano /etc/apache2/sites-available/nextcloud.conf

Alias /nextcloud "/var/www/nextcloud/"


 Options +FollowSymlinks
 AllowOverride All


 Dav off


SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud


Datei wieder abspeichern und einen Symlink erstellen:

sudo ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf

Dann folgende Module aktivieren:

  • sudo a2enmod headers
  • sudo a2enmod env
  • sudo a2enmod dir
  • sudo a2enmod mime

Dann SSL aktivieren:

  • a2enmod ssl
  • a2ensite default-ssl
  • service apache2 reload

damit Nextcloud eine Datenbank hat melden wir uns in mysql an und erstellen eine Datenbank samt Nutzer:

 

CREATE Database nextcloud;
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON nextloud. * TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;

Diese Daten dann in die Nextcloud Mysql Konfiguration eintragen.

Nun müsste Nextcloud laufen.

Installation von Nextant:

Damit Nextant irgendetwas tut muss solr installiert werden.

Dazu checkt zuerst eure Java Version.

die Ausgabe sollte so aussehen:

java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-0ubuntu1.16.04.2-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)

Wenn nicht schafft ein

sudo apt-get install default-jdk

oder

sudo apt-get install default-jre

abhilfe.

Dann installiert solr mit:

mkdir /opt/solr
cd /opt/solr
wget http://mirrors.ircam.fr/pub/apache/lucene/solr/6.6.0/solr-6.6.0.tgz
tar -zxvf solr-6.6.0.tgz
cd solr-6.6.0/server/

Editiert nun die etc/jetty-http.xml und ändert folgende Zeile

von

in

dann:

cd solr/
cp -fr configsets/basic_configs nextant
cd ../..

erstellt nun einen User mit dem Namen „Solr“

dann startet solr mit

sudo -u solr bin/solr start

und

sudo -u solr bin/solr create -c nextant

damit Solr administriert werden kann muss ein Admin her, den erstellen wir mit

sudo htpasswd -c /etc/apache2/htpasswd-solr admin

und vergeben dann ein Passwort. Abschliessend diese folgendes in die /etc/apache2/sites-enabled/nextcloud.conf eintragen:

# Solr
ProxyPass /solr/ http://localhost:8983/solr/
ProxyPassReverse /solr/ http://localhost:8983/solr/

AuthType Basic
AuthName "solr"
AuthUserFile /etc/apache2/htpasswd-solr
Require valid-user

Nextant Installation

Dann die Nextant App aktivieren und http://localhost:8983/solr/ in das entsprechende Feld eintragen.

Nachdem nun fast alles eingerichtet ist, fehlt nur noch eine Sache. Tesseract-ocr für die Schrifterkennung in Bildern, Dokumenten und PDF Dateien.

Hinweis: Bei einem verschlüsselten Datenverzeichnis geht dies nicht.

Installiert nun erst Tesseract-ocr sowie die Sprachdatei für Deutsch

sudo apt-get install tesseract-ocr tesseract-ocr-deu

 

Wer OCRmyPDF noch installieren möchte macht dies mit

sudo apt-get install ocrmypdf

 

4 Gedanken zu „Setup Nextcloud mit Nextant Tesseract-ocr und solr Stats

  • Juli 4, 2017 um 8:51 pm
    Permalink

    Coole Anleitung, vielen Dank! 🙂

    Ich glaub, ein paar Kleinigkeiten fehlen noch ….. werde berichten.

    Merci!

    Antwort
    • Juli 10, 2017 um 9:19 pm
      Permalink

      Danke mach das

      Antwort
  • Juli 4, 2017 um 8:51 pm
    Permalink

    Coole Anleitung, vielen Dank! 🙂

    Ich glaub, ein paar Kleinigkeiten fehlen noch ….. werde berichten.

    Merci!

    Antwort
    • Juli 10, 2017 um 9:19 pm
      Permalink

      Danke mach das

      Antwort

Kommentar verfassen

%d Bloggern gefällt das: