# Nextcloud in den Fluss bringen



## drakul (26. Juni 2018)

Hallo,

habe nach folgender Anleitung perfekt mein System aufsetzten können: https://www.howtoforge.com/tutorial/perfect-server-debian-9-nginx-bind-dovecot-ispconfig-3.1/2/ - Vielen Dank dafür 

Da ich das erste Mal nginx verwende suche ich hier Hilfe - es geht um folgendes:

Wenn ich Nextcloud installiere (Webinstaller) bekomme ich 502 Gateway Timeout und danach einen 404 Error, also die Installation scheint durch zulaufen, bei der Konfiguration kann ichs imho nicht schreiben und danach sehe ich erstmal nichts mehr (den 404 Fehler halt).

Joomla! lässt sich ohne Probleme installieren.

phpBB gibt mir die Installationsstartseite aus, wenn ich nun allerdings beginnen will zu installieren bekomme ich wieder einen 404 Error.

Wenn weitere Details helfen, bitte fragen - stehe im Moment auf dem Schlauch und komme mit den gefunden Anleitungen nicht weiter.

Derzeit bemühe ich mich Nextcloud mit diesem Tutorial zum Laufen zu bekommen: https://goneuland.de/wordpress/debian-9-stretch-nextcloud-mit-nginx-mariadb-und-php7-installieren/


Beste Grüße,
drakul


----------



## Till (27. Juni 2018)

Fast alle CMS und auch Nextcloud benötigen Rewrite Regeln um URL's passend auf die PHP dateien umzuleiten. Für Apache ist dies meist in einer .htaccess Datei die der Software beiliegt, für nginx musst Du entweder die Regeln der .htaccess Datei in die nginx syntax umbauen und in den vhost einfügen (dafür gibt es das nginx Direktiven Feld in der website) oder aber Du musst eine passende nginx config im netz suchen und diese einfücgen. Aber vorsicht, man fügt nur die rewrite Regeln für die URL's ein, keinesfalls den ganzen vhost da der vhost ja schon von ispconfig geschrieben wurde und auch nicht den php handler, denn dieser besteht ja auch bereits im ispconfig vhost.

Nginx direktiven für ownclod welche vermutlich auch für nextcloud funktionieren sollten passend für ISPConfig findest Du z.B. hier: https://www.howtoforge.com/community/threads/owncloud-on-ispconfig-how-to.79209/



Zitat von drakul:


> Derzeit bemühe ich mich Nextcloud mit diesem Tutorial zum Laufen zu bekommen: https://goneuland.de/wordpress/debian-9-stretch-nextcloud-mit-nginx-mariadb-und-php7-installieren/


Das ist eien anleitung für einen standalone server, also einen server der nur nextcloud beinhakltet und kein Controlpanel wie ISPConfig und keine anderen websites.


----------



## drakul (27. Juni 2018)

@Till - Tausend Dank hat ein Wunder bewirkt einfach den nginx directiven code 1:1 übernommen und es läuft.

Jetzt noch die Standardfehlermeldungen ausbessern, dankeschön 

Alles Gute dir.


----------



## drakul (2. Juli 2018)

hier mal kurz meine Daten damit alle auf dem akutellen Stand sind - gibt soweit keine Fehlermeldungen mehr, bis auf siehe unten:

*php.ini Direktive*
upload_max_filesize=20g
post_max_size=20g
always_populate_raw_post_data=-1
max_execution_time = 3600
opcache.enable=1
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

*nginx Direktive*
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;

location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }
location ~ \.php$ {
            try_files /b615814d8f2c19dbcb25b1fbae07ce38.htm @php2;
        }
    # The following 2 rules are only needed for the user_webfinger app.
    # Uncomment it if you're planning to use this app.
    #rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
    location = /.well-known/carddav {
        return 301 $scheme://$host/remote.php/dav;
    }
    location = /.well-known/caldav {
        return 301 $scheme://$host/remote.php/dav;
    }
    location /.well-known/acme-challenge { }
    # set max upload size
    client_max_body_size 20G;
    fastcgi_buffers 64 4K;
    # Disable gzip to avoid the removal of the ETag header
    gzip off;
    # Uncomment if your server is build with the ngx_pagespeed module
    # This module is currently not supported.
    # pagespeed off;
    error_page 403 /core/templates/403.php;
    error_page 404 /core/templates/404.php;
    location / {
        rewrite ^ /index.php$uri;
    }
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
        return 404;
    }
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
        return 404;
    }
    location ~ ^(.+?\.php)(/.*)?$ {
                        try_files $1 =404;
                        include fastcgi_params;
                        fastcgi_param SCRIPT_FILENAME $document_root$1;
                        fastcgi_param PATH_INFO $2;
                        fastcgi_param HTTPS $https;
                        {FASTCGIPASS}
                        fastcgi_intercept_errors on;
                        fastcgi_index index.php;
                        fastcgi_buffers 64 64K;
                        fastcgi_buffer_size 256k;
                        fastcgi_param modHeadersAvailable true;
                        fastcgi_read_timeout 7200;
        }
    location @php2 {
                        fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
                        include fastcgi_params;
                        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                        fastcgi_param PATH_INFO $fastcgi_path_info;
                        fastcgi_param HTTPS $https;
                        {FASTCGIPASS}
                        fastcgi_intercept_errors on;
                        fastcgi_index index.php;
                        fastcgi_buffers 64 64K;
                        fastcgi_buffer_size 256k;
                        fastcgi_param modHeadersAvailable true;
                        fastcgi_read_timeout 7200;
        }
    location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param HTTPS on;
        fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
        fastcgi_param front_controller_active true;
        #fastcgi_pass php-handler;
#fastcgi_pass unix:/var/run/hhvm/hhvm.sock;
    {FASTCGIPASS}
        fastcgi_intercept_errors on;
        fastcgi_request_buffering off;
    }
    location ~ ^/(?:updater|ocs-provider)(?:$|/) {
        try_files $uri/ =404;
        index index.php;
    }
    # Adding the cache control header for js and css files
    # Make sure it is BELOW the PHP block
    location ~* \.(?:css|js)$ {
        try_files $uri /index.php$uri$is_args$args;
        add_header Cache-Control "public, max-age=7200";
        # Add headers to serve security related headers (It is intended to have those duplicated to the ones above)
        # Before enabling Strict-Transport-Security headers please read into this topic first.
        # add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
        add_header X-Content-Type-Options nosniff;
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Robots-Tag none;
        add_header X-Download-Options noopen;
        add_header X-Permitted-Cross-Domain-Policies none;
        # Optional: Don't log access to assets
        access_log off;
    }
    location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
        try_files $uri /index.php$uri$is_args$args;
        # Optional: Don't log access to other assets
        access_log off;
    }
location = /data/htaccesstest.txt {
  allow all;
  log_not_found off;
  access_log off;
}

in /var/www/.../nextcloud/config/config.php

unten rein, vors );

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

vorher natürlich apt-get install memcached php5-memcached
checken ob alles passt mit:
ps ax | grep memcached
sollte ca. so aussehen:
19563 ? Sl 0:02 /usr/bin/memcached -m 64 -p 11211 -u memcache -l
127.0.0.1

https://docs.nextcloud.com/server/13/admin_manual/configuration_server/caching_configuration.html


==============================================

Der Zugriff auf diese Site erfolgt über HTTP. Es wird dringend geraten, Ihren Server so zu konfigurieren, dass er stattdessen nur HTTPS akzeptiert, wie es in den Sicherheitshinweisen beschrieben ist.
->gibt es eine Möglichkeit mit dem Certbot fürs Intranet SSL Zertifikate anzulegen? Bis jetzt aktiviere ich die Häkchen und sie werden nach der Umsetzung wieder deaktiviert?

________________________

Wie schaffe ich es das die index.html und die index.php standardmäßig geladen werden? 

________________________

Bei einem CSFR Fehler einfach die App Password Policy deaktivieren.

Beste Grüße,
Drakul


----------

