NextcloudPleskVPS

Installation Nextcloud 13 auf Ubuntu 16.04 in Plesk mit Web-Installer

Heute möchte ich zeigen, wie man Nextcloud 13 mit Plesk bereitstellen kann.

Wenn wir root-Zugriff auf den Server haben, können wir natürlich auch hier mit redis-server als Memcache arbeiten.
Mit dem folgenden Befehl installieren wir das entsprechende Paket:

sudo apt-get install redis-server

vHost vorbereiten:

In Plesk legen wir die Subdomain unter Domains an:

und sichern diese mit LetsEncrypt ab:

Unter der Domain im File Manager:

löschen wir alle Dateien und Verzeichnisse, sonst gibt es nach der Einrichtung von Nextcloud Fehler bei der Integritätsprüfung:

Nun laden wir uns den Nextcloud-Webinstaller von der folgenden URL auf unsere Workstation:

Nextcloud Webinstaller

Im Anschluss laden wir das php-Skript mit dem File Manager in unseren Webspace:

In den Apache & NGINX Einstellungen der Subdomain setzen wir unter „zusätzliche Anweisungen für HTTP die folgenden Werte (Domain/Subdomain anpassen) ein:

<Directory /var/www/vhosts/domain.tld/nextcloud.domain.tld/>
 
AllowOverride All

</Directory>

unter „zusätzliche Einstellungen für HTTPS“ kommt die folgende Direktive:

Header always set Strict-Transport-Security "max-age=15768000; preload; includeSubDomains"

NGINX-Einstellungen:

Unter Umständen gibt es mit einigen Betriebssystemen ein Problem mit Groß- und Kleinschreibung der Dateiendungen, daher setzen wir unter „Statische Dateien direkt durch nginx bedienen“ den folgenden Block:

ac3 avi bmp bz2 css cue dat doc docx dts eot exe flv gif gz htm html ico img iso jpeg jpg js mkv mp3 mp4 mpeg mpg ogg pdf png ppt pptx qt rar rm svg swf tar tgz ttf txt wav woff woff2 xls xlsx zip AC3 AVI BMP BZ2 CSS CUE DAT DOC DOCX DTS EOT EXE FLV GIF GZ HTM HTML ICO IMG ISO JPEG JPG JS MKV MP3 MP4 MPEG MPG OGG PDF PNG PPT PPTX QT RAR RM SVG SWF TAR TGZ TTF TXT WAV WOFF WOFF2 XLS XLSX ZIP

Zusätzliche NGINX-Anweisungen (Anpassung wegen Groß- Kleinschreibung Dateiendungen und Timeout-Fehler bei größeren Dateien):
 

ssl_prefer_server_ciphers On;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5;

gzip_proxied any;
# enable gzip compression
gzip on;
gzip_min_length 20;
gzip_buffers 4 32k;
gzip_types text/plain text/javascript application/javascript application/x-javascript text/xml text/css application/js;
gzip_vary on;
location ~* .(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|json|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|OGG|OGV|SVG|SVGZ|EOT|OTF|WOFF|MP4|TTF|CSS|RSS|ATOM|JS|JPG|JPEG|JSON|GIF|PNG|ICO|ZIP|TGZ|GZ|RAR|BZ2|DOC|XLS|EXE|PPT|TAR|MID|MIDI|WAV|BMP|RTF)$ {
expires max; log_not_found off;
# time out settings
proxy_connect_timeout 3600s;
proxy_send_timeout   3600s;
proxy_read_timeout   3600s;
fastcgi_read_timeout 3600s;
# webdav rewrite
rewrite ^/.well-known/carddav /remote.php/dav/ permanent;
rewrite ^/.well-known/caldav /remote.php/dav/ permanent;
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
}

 

In den PHP-Einstellungen setzen wir die Version auf 7.2.x und setzen unter OPEN-Base-Dir den folgenden Wert ein:

{WEBSPACEROOT}{/}{:}{TMP}{/}:/dev/urandom:/proc/meminfo

Ansonsten verwenden wir die folgenden Werte oder passen diese entsprechend an:

ganz unten auf der Seite unter „Zusätzliche Konfigurationsanweisungen“ kommen die folgenden Parameter hinein:
 

opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

 
Unter den Hosting-Einstellungen dürfen wir die 301-Weiterleitung (http auf https) nicht vergessen:

Als nächstes kümmern wir uns um die Datenbank

Unter der Subdomain Datenbank hinzufügen:

und die folgenden Einstellungen übernehmen bzw. anpassen und für später notieren:

Abschluss der Installation

Über den Webbrowser rufen wir nun unser Nextcloud-Setup-Skript auf und schließen die Installation ab:

https://nextcloud.deine-domain.tld/setup-nextcloud.php

im nächsten Step (Next) tragen wir einen „.“ ein:

und nach einem weiteren Klick auf „Next“, sollte uns der Erfolg der Installation angezeigt werden:

als nächstes kommen wir zur Abfrage der Einstellungen:

Wenn wir eingeloggt sind, müssen wir im Plesk über den File Manager noch die config.php in dem Ordner config bearbeiten und den folgenden Block für den Cache (falls redis installiert) einfügen:
 

'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.local' => '\OC\Memcache\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),

 
Wenn wir ssh-Zugriff (root oder explizit für den Plesk-User)haben, dann können wir noch einen CRON-Job anlegen (User anpassen):

als root:

sudo crontab -u admin -e

als Plesk-User mit ssh-Zugriff (kein chroot-Zugriff):

crontab -e

und die folgende Zeile eintragen (Domain und Subdomain anpassen):

*/15 * * * * php -f /var/www/vhosts/domain.tld/nextcloud.domain.tld/cron.php

Oder wir nutzen die Möglichkeit über die Plesk-Oberfläche einen Cron-Job anzulegen:

Wenn wir beide Möglichkeiten nicht haben, nutzen wir einen externen WebCron-Dienst, z.B. EasyCron.

Die URL, die aufgerufen werden muss, lautet

https://nextcloud.domain.tld/nextcloud/cron.php

Unter den Grundeinstellungen prüfen wir Nextcloud auf Fehler und im Anschluss auch in Plesk in der Subdomain unter Protokolle.

Falls Ihr Probleme habt oder Fragen, Anregungen, dann immer her damit.

Falls nicht installiert auf dem Plesk-Host doch einfach Online-Office mit Docker

Bis dann und viel Spaß 🙂

36 Gedanken zu „Installation Nextcloud 13 auf Ubuntu 16.04 in Plesk mit Web-Installer

  1. Herzlichen Dank für diese Anleitung, sie hat mir sehr geholfen. Zwei kleine Verbesserungsvorschläge habe ich:

    * Den Eintrag für die Crontab kann man auch anlegen wenn man nur SSH-Zugang hat – root-Zugang ist nicht nötig. (Das Kommando wäre dann natürlich nur „crontab -e“. Alternativ kann man es auch über das Webinterface machen: rechts oben unter „Geplante Aufgaben“.

    * Wenn man Shell-Zugang hat, kann man das Zip-Archiv auf direkt dort herunterladen mit wget. Das geht wesentlich schneller – insbesondere, wenn man eine asymmetrischen DSL-Leitung hat.

  2. Hallo,

    Ich hab leider das Problem unter Plesk, wenn ich unter Nextcloud gehe.
    Dein Webserver ist noch nicht hinreichend für Datei-Synchronisation konfiguriert, da die WebDAV-Schnittstelle vermutlich nicht funktioniert.
    Gruß
    Michael

    1. Error index ReflectionException: Method OC\Settings\Controller\AuthSettingsController::show() does not exist 2018-07-02T18:26:29+0200
      Error index ReflectionException: Method OC\Settings\Controller\AuthSettingsController::show() does not exist 2018-07-02T18:26:29+0200
      Error index ReflectionException: Method OC\Settings\Controller\AuthSettingsController::show() does not exist 2018-07-02T18:26:20+0200
      Error index ReflectionException: Method OC\Settings\Controller\AuthSettingsController::show() does not exist 2018-07-02T18:26:18+0200
      Error index ReflectionException: Method OC\Settings\Controller\AuthSettingsController::show() does not exist 2018-07-02T18:26:16+0200
      Error index ReflectionException: Method OC\Settings\Controller\AuthSettingsController::show() does not exist 2018-07-02T18:16:50+0200
      Error index ReflectionException: Method OC\Settings\Controller\AuthSettingsController::show() does not exist 2018-07-02T18:16:48+0200
      Error index ReflectionException: Method OC\Settings\Controller\AuthSettingsController::show() does not exist 2018-07-02T18:16:34+0200
      Error index ReflectionException: Method OC\Settings\Controller\AuthSettingsController::show() does not exist

    2. Hallo, steht im Nextcloud-Log dazu noch etwas mehr?
      Läuft Nextcloud in einer Subdomain oder in einem Unterordner einer (Sub)Domain?
      Zertifikat ist installiert und 301-Weiterleitung auf https aktiv?
      Hat der Server eine öffentliche IP direkt zugewiesen oder hat er eine private IP, die „übersetzt“ wird?

  3. Hallo,
    ich habe gemäß dieser Anleitung alles installiert und es funktioniert auch wunderbar, aber anscheinend gibt es ein Problem mit CaseSensitive. Ich nutze eigentlich ausschließlich Mac und nun sind einige Dateien dabei die nicht synchronisiert werden mit der Meldung „not allowed“.
    betrifft z.B.: schreiben.DOC
    wenn ich es umbenenne in schreiben.doc wird es synchronisiert.
    gibt es dazu einen Workaround ?
    gruß Marc

      1. Hallo,
        aufm Mac habe ich keine nextcloud.log
        aber wenn ich in den „Apache & nginx Settings“ folgendes eintrage:

        Serve static files directly by nginx :
        ac3 avi bmp bz2 css cue dat doc docx dts eot exe flv gif gz htm html ico img iso jpeg jpg js mkv mp3 mp4 mpeg mpg ogg pdf png ppt pptx qt rar rm svg swf tar tgz ttf txt wav woff woff2 xls xlsx zip AC3 AVI BMP BZ2 CSS CUE DAT DOC DOCX DTS EOT EXE FLV GIF GZ HTM HTML ICO IMG ISO JPEG JPG JS MKV MP3 MP4 MPEG MPG OGG PDF PNG PPT PPTX QT RAR RM SVG SWF TAR TGZ TTF TXT WAV WOFF WOFF2 XLS XLSX ZIP

        und bei

        Additional nginx directives :

        ssl_prefer_server_ciphers On;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5;

        gzip_proxied any;
        # enable gzip compression
        gzip on;
        gzip_min_length 20;
        gzip_buffers 4 32k;
        gzip_types text/plain text/javascript application/javascript application/x-javascript text/xml text/css application/js;
        gzip_vary on;
        # end gzip configuration
        location ~* .(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|json|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|OGG|OGV|SVG|SVGZ|EOT|OTF|WOFF|MP4|TTF|CSS|RSS|ATOM|JS|JPG|JPEG|JSON|GIF|PNG|ICO|ZIP|TGZ|GZ|RAR|BZ2|DOC|XLS|EXE|PPT|TAR|MID|MIDI|WAV|BMP|RTF)$ {
        expires max; log_not_found off;
        }

        dann werden auch Dateien mit groß geschriebener Endung hochgeladen.
        Des weiteren musste ich noch eine Einstellung in Plesk vornehmen, da er sonst nur Dateien bis 100MB hochgeladen hat:

        Add the following directives to /usr/local/psa/admin/conf/panel.ini file to customize Plesk defaults:
        [webserver]
        nginxClientMaxBodySize = 2000m

        If there is no /usr/local/psa/admin/conf/panel.ini file, create it from the sample file:

        # cp /usr/local/psa/admin/conf/panel.ini.sample /usr/local/psa/admin/conf/panel.ini

        Rebuild web server configuration files:

        # plesk sbin httpdmng –reconfigure-all

        1. Interessantes Verhalten. Meine größten Files sind 1,6 GB groß und haben diese Änderungen nicht erfordert. Könntest Du mir mal ein Screenshot von den Nginx Einstellungen an meine Mail-Adresse schicken? Plesk Version? Das nextcloud.log befindet sich im Datenverzeichnis von Nextcloud auf dem Server. Die nginx-Logs sind in dem vHost in Plesk zu sehen. Würde das gerne mal genauer untersuchen. Danke im Voraus. Gruß Markus

  4. Hi!

    Meine Plesk-Version: Plesk Onyx 17.8.11 Update Nr. 8

    Es funktioniert jetzt einwandfrei ohne Fehlermeldungen. Ich habe aber keine genaue Vorstellung, was das Problem war.

  5. Wenn ich unter PHP-Einstellungen von FPM-Anwendung durch Apache bedient auf FPM-Anwendung durch NGINX bedient wechsle, funktioniert alles einwandfrei.

  6. Die Anleitung funktioniert soweit ausgezeichnet. Wenn ich aber die letzte Zeile mit den besonderen NGINX-Anweisungen übernehme, kann ich keine jpg/jpeg Dateien hochladen. Lösche ich dagegen diesen Abschnitt funktioniert alles tadellos.

    Woran liegt das höchstwahrscheinlich?

    Es handelt sich um diesen Abschnitt:

    location ~* .(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|json|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
    expires max; log_not_found off;
    }

      1. Ja – die gibt es:

        2018-05-26 17:06:36 Error 78.22.163.144 405 PUT /remote.php/webdav/DSC00721.JPG HTTP/2.0 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36 568 SSL/TLS-Zugriff für nginx

        Ich vermute, dass es damit zusammenhaengt, dass ich den NGINX als Proxy vorgeschaltet habe.

  7. Hallo, danke für das gute Tutorial! Nextcloud läuft bei mir auf einem V-Server von Strato in Berlin. Installiert ist Ubuntu 16.04.4 LTS und Plesk Onyx Version 17.8.11. Die Nextcloud läuft allerdings mit einem Problem, für das Du vielleicht die Lösung weißt. Stelle ich die PHP-Version 7.0.22 ein und füge die Zeile ‚memcache.local‘ => ‚\\OC\\Memcache\\APCu‘, in die Nextcloud-config ein, läuft alles und Nextcloud bestätigt unter „Sicherheits- & Einrichtungswarnungen“ Alle Prüfungen bestanden. Wähle ich jedoch die PHP-Version 7.2.5, die von Plesk zusätzlich bereitgestellt wird, stürzt Nextcloud mit der Fehlermeldung „PHP Startup: apcu: Unable to initialize module Module compiled with module API=20151012 PHP compiled with module API=20170718 These options need to match at Unknown#0“ ab. Die dritte Variante, PHP 7.2.5 und keim apcu funktioniert wieder, doch jetzt möchte Nextcloud, dass ich apcu als memcache aktiviere. Den memcache habe ich mit apt install php-apcu -y installiert. Hast Du eine Idee?

      1. Hallo Markus, danke für die schnelle Antwort. Ich habe jetzt Deinen anderen Beitrag befolgt und APCu unter /opt/plesk … installiert – alles klappt jetzt! Deine Tutorials sind klasse! Hätte ich die früher entdeckt, hätte ich viel Zeit gespart! Vielen Dank nochmals! Noch eine Frage. Ich habe jetzt einen opcache für php-scripte, einen apcu-cache für files wofür braucht man eigentlich redis?

          1. Hallo Markus, danke für die Antwort, jetzt verstehe ich auch das zusammenspiel von redis, opcache besser. Für redis habe ich in meiner config Dein Beispiel eingetragen:
            ‚memcache.distributed‘ => ‚\\OC\\Memcache\\Redis‘,
            ‚memcache.local‘ => ‚\\OC\\Memcache\\Redis‘,
            ‚memcache.locking‘ => ‚\\OC\\Memcache\\Redis‘,
            ‚redis‘ =>
            array (
            ‚host‘ => ‚localhost‘,
            ‚port‘ => 6379,
            ),
            und Nextcloud läuft ohne Probleme:-).
            Muss ich dennoch auch die Zeile: ‚memcache.local‘ => ‚\\OC\\Memcache\\APCu‘, einfügen oder ist das mit redis erledigt?

          2. Hallo Jürgen,
            Diese Zeile:
            ‘memcache.local’ => ‘\\OC\\Memcache\\Redis’,
            Ersetzen durch:
            ‘memcache.local’ => ‘\\OC\\Memcache\\ APCu’,

            Dann wird für den lokalen Cache das schnellere apcu verwendet.
            Gruß
            Markus

          3. Klasse! Hat geklappt und Nextcloud fühlt sich deutlich schneller an als zuvor! Herzlichen Dank für die freundliche Hilfe:-)
            Beste Grüße und, freue mich schon auf Deine nächsten Tutorials:-)
            Jürgen

  8. wenn ich die einstellung so mache wie hier das steht timt mein kompletter server aus und alles dienste sind gestoppt und der server ist nicht mal anping bar was könnte der fehler sein

  9. Super HowTo – vielen Dank.
    Ich hatte mir bisher verzweifelt versucht den Memcache Server einzurichten und war mir nicht bewusst, dass es so einfach geht 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.