How to install Nextcloud 14 within Plesk via Web-Installer

Today we will install Nextcloud 14 into a Plesk vHost

If we have root access to the server, we can also use redis-server as memcache.

The following command installs the appropriate package:

sudo apt-get install redis-server

Prepare vHost:

In Plesk we create the subdomain under domains:



and secure it with LetsEncrypt:



Within the subdomain we use the file manager:



and remove all files and directories:



Now we have to download the Nextcloud-Webinstaller from the following URL to our workstation:

Nextcloud Webinstaller

Afterwards we upload it to our Webspace in Plesk:


In Apache/NGINX settings of the subdomain, we set the following values for HTTP Additional Instructions (Customize Domain / Subdomain):

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


in Additional settings for HTTPS we set the following directives:


Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
Header set Referrer-Policy "strict-origin-when-cross-origin"
Header set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"





Under certain circumstances, some operating systems have a case-sensitivity problem, so we put the following block under Use Static Files Directly Through 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

and into Additional NGINX-Instructions we add the following block:


ssl_prefer_server_ciphers On;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

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 PHP settings we set the version to 7.2.x and enter the following value under OPEN-Base-Dir:




in section disable_functions you have to delete opcache_get_status and insert none.

Don’t forget to adjust the upload_max_filesize and post_max_size values.

as example we can use the following values if you want to upload files not greater than 2 GB:



Then set pm to dynamic and adjust, as example:


At the bottom of the page under Additional configuration instructions, we set following parameters:




Among the hosting settings, we have to set the 301 redirect (http to https):



Prepare Database


Add a database within the subdomain:



and accept or adjust the following settings and write them down for later use:



Finish the installation


Via the web browser, we call our Nextcloud-Webinstaller and complete the Installation now:


In the next step, we enter a single „.“ into the field:

And after another click on „Next“, we should see the success of the installation:

The next step is to adjust the settings:


If we are logged in, we have to edit the config.php in config directory in Plesk via File Manager and insert the following block for the cache (if redis is installed):


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


If we have ssh-access (as root or Plesk-User), then we can create a CRON job (adjust user):

as root:

sudo crontab -u admin -e


as Plesk-User:

crontab -e

and enter the following line (customize domain and subdomain):


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


Sometimes it is also possible to add a task via the GUI:

Otherwise, we use an external WebCron service, for example EasyCron.

The URL that needs to be called is:



Among the basic settings, we check Nextcloud for errors and subsequently also in Plesk in the subdomain under logs.

Optional: Pretty-URL:

Optional you are able to rewrite the URL from https://nextcloud.your-domain.tld/index.php/... to https://nextcloud.your-domain.tld/...

Edit the config.php in your nextcloud-vHost and add or extend the following lines (important: slash at the end of url in first line):

'overwrite.cli.url' => 'https://nextcloud.your-domain.tld/',
  'htaccess.RewriteBase' => '/',

then execute the following command in your shell:

sudo -u admin php /var/www/vhosts/your-domain.tld/nextcloud.your-domain.tld/occ maintenance:update:htaccess

If you have problems or questions, suggestions, don’t hesitate to contact me.

See you and happy Nextclouding 🙂

18 Gedanken zu „How to install Nextcloud 14 within Plesk via Web-Installer

  1. Hallo Markus –

    danke für die Aneitung. Nach erfolgter Installation vo Nectcloud 15 erhalte ich in Nextcloud allerdings folgende Hinweise:

    Ihr Webserver ist noch nicht hinreichend für Datei-Synchronisation konfiguriert. Die WebDAV-Schnittstelle ist vermutlich defekt.

    Ihr Webserver ist nicht richtig konfiguriert um „/.well-known/caldav“ aufzulösen. Weitere Informationen hierzu finden Sie in der Dokumentation.
    Ihr Webserver ist nicht richtig konfiguriert um „/.well-known/carddav“ aufzulösen. Weitere Informationen hierzu finden Sie in der Dokumentation.


  2. Hi Markus
    I just updated to version 14.04 and got the following warning: Der „Referrer-Policy“ HTTP-Header ist nicht gesetzt auf „no-referrer“, „no-referrer-when-downgrade“, „strict-origin“, „strict-origin-when-cross-origin“ oder „same-origin“. Dadurch können Verweis-Informationen preisgegeben werden. Siehe die W3C-Empfehlung.

    I tried some different things but was not able to resolve this warnings.
    Best wishes

      1. Hi Markus
        I used the same installation like in your tutorial on this page. nginx and Apache.
        I tried to add some of the „Additional directives for HTTP“ which I found inside „Additional directives for HTTPS “ but without sucess.

        Best wishes

        1. So you have nginx Proxy Mode enabled and the following Block in https for apache2:

          Header always set Strict-Transport-Security „max-age=15552000; includeSubDomains“
          Header set Referrer-Policy „strict-origin-when-cross-origin“
          Header set X-Content-Type-Options „nosniff“
          Header always set X-Frame-Options „SAMEORIGIN“

  3. Halo Markus
    Thank you very very much for this blog post. I have been working with Plesk tech support and softalucious support to get next cloud 15 installed with little luck. Your information in this post had my server up and running in less than an hour..

    Much thanks send me a URL and i will gladly buy you a Weihenstphaner !

  4. Hallo Markus,
    danke für die Anleitung. Welche Einstellungen muss ich denn bei Nextcloud 15 vornehmen, wurden dort Sachen geändert, oder kann ich die selbe Anleitung von oben verwenden?

    Gruß janik

      1. Hallo Markus,

        Danke, deine Anleitung funktioniert soweit. Allerdings habe ich das selbe Problem wie bei allen 15er Installationen, dass mir der Fehler mit der big int Konvertierung angezeigt wird. Versuche ich die entsprechende occ Datei dazu unter meinem Plesk User auszuführen, bekomme ich immer die Fehlermeldung „PHP Parse error: syntax error, unexpected ‚class‘ (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or ‚{‚ or ‚$‘ in /var/www/vhosts/domain.tld/httpdocs/domain.tld/console.php on line 93“.

        Woran könnte das liegen? In deiner Anleitung zu NC15 und allen anderen Anleitungen wird der Befehl unter dem www-data User ausgeführt, unter welchem User muss ich das bei Plesk ausführen?

        Gruß Janik

          1. Hallo Markus,

            Dankeschön, es lag tatsächlich nicht am User, sondern an der PHP Version. In der Konsole habe ich es immer standardmäßig mit php5 ausgeführt, ich brauchte aber php7. Hab die Versionen letzendlich unter /opt/plesk/php/7.2/bin/php gefunden, damit funktioniert es. Alternativ ist die Ausführung über den Crontab von Plesk auch eine gute Möglichkeit, falls man keinen Zugriff auf die Verzeichnisse hat.

            Gruß Janik

  5. Nach Klick auf „Installation abschließen“ kam erst „503 Timeout“ und seit dem kommt „Internal Server Error The server encountered an internal error and was unable to complete your request. Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report. More details can be found in the webserver log.“ beim Aufruf von …/index.php. Die Datenbank ist gefüllt und die SETUP…nextcloud.php-Datei ist auch weg…

  6. Thanks for the tutorial.
    I needed a long time to get Redis running.
    Simplem Problem: Not only install Redis-server, you nee to install php-redis to 🙂
    apt-get install redis-server php-redis
    will bring the Redis-cache to run with your configuration.
    Great !

    1. Hi Klaus, thank you for your feedback ?
      apt install php-redis installs the OS-Version of php-redis. Normally you should switch to a plesk-php-version. In Tools & Setting – php-Settings you can activate or deactivate (normally it is activated) the redis-extension.

      Regards Markus

Schreibe einen Kommentar zu Markus Weingärtner Antworten abbrechen

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