# ISPConfig 3 / Owncloud 5.0 / Nginx



## F4RR3LL (11. Apr. 2013)

Wie das Thema schon sagt.... hat das jemand schon erfolgreich zum Laufen gebracht?
Ich komme nicht wirklich weiter. 

Nach dem Einloggen folgt der Fehler im Browser:

```
This content failed to load.
```
Im error Log finde ich:

```
2013/04/11 19:35:59 [error] 12245#0: *117 access forbidden by rule, client: 123.456.789.123, server: meine.seite.de, request: "GET /data/htaccesstest.txt HTTP/1.0", host: "meine.seite.de"
```
Meine nginx Direktiven welche ich hinzugefügt habe sehen derzeit so aus (ich will bewusst nicht in sites-available rumschrauben):

```
# default try order
    location / {
            rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
            rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
            rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
            rewrite ^/apps/calendar/caldav.php /remote.php/caldav/ last;
            rewrite ^/apps/contacts/carddav.php /remote.php/carddav/ last;
            rewrite ^/apps/([^/]*)/(.*\.(css|php))$ /index.php?app=$1&getfile=$2 last;
            rewrite ^/remote/(.*) /remote.php/$1 last;
            try_files $uri $uri/ @webdav;
    }

    # owncloud WebDAV
    location @webdav {
            fastcgi_split_path_info ^(.+\.php)(/.*)$;
            fastcgi_pass 127.0.0.1:9027; # or use php-fpm with: "unix:/var/run/php-fpm/php-fpm.sock;"
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param HTTP_AUTHORIZATION $http_authorization;
            #fastcgi_param HTTPS on;
            include fastcgi_params;
    }
```
Https habe ich bewusst erstmal raus gelassen.
Ich bastel da nun schon ein paar Tage rum, habe schon x verschiedene Varianten bei den Direktiven versucht, doch ich komme nicht weiter.
Wäre super wenn hier jemand ne Idee oder noch besser Lösung hat.

Beste Grüße,

Sven

EDIT://

Infos zum Server:

OS:  Debian 7
ispconfig Version: 3.0.5.2
nginx Version:
	
	



```
ii  nginx                             1.2.1-2.2                    all          small, powerful, scalable web/proxy server
ii  nginx-common                      1.2.1-2.2                    all          small, powerful, scalable web/proxy server - common files
ii  nginx-full                        1.2.1-2.2                    amd64        nginx web/proxy server (standard version)
```


----------



## F4RR3LL (12. Apr. 2013)

OK ich habs nun am laufen. Leider musste ich doch im Vhost selber rumschreiben. 
Es wäre fein wenn man in Zukunft irgendwann die Möglichkeit hat, wegen mir über Expertenmodus oder so direkt die vhost Config anzupacken. 
Es ist mit derzeitigen Boardmitteln und nginx so nicht möglich owncloud ans laufen zu bringen da ich vom Webinterface verschiedene Locations nicht deaktivieren kann.
Nachteil an der jetzigen Lösung... sie ist nicht updatefähig. Das finde ich schade.

Gruß Sven, der hofft das er evtl einfach irgendwas übersehen hat.

Falls wen die Config interessiert:

```
root@host:/# cat /etc/nginx/sites-available/meinecloud.tld.vhost
server {
  listen 80;
  server_name meinecloud.tld;
  return  https://$server_name$request_uri;  
}

server {
  listen 443 ssl;
  server_name meinecloud.tld;

  ssl_certificate /var/www/clients/client1/web19/ssl/meinecloud.tld.crt;
  ssl_certificate_key /var/www/clients/client1/web19/ssl/meinecloud.tld.key;


  root   /var/www/meinecloud.tld/web;

  client_max_body_size 10G; 
  fastcgi_buffers 64 4K;

  rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
  rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
  rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

  index index.php;
  error_page 403 = /core/templates/403.php;
  error_page 404 = /core/templates/404.php;

  location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
    deny all;
  }

  location / {

    rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

    rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
    rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

    rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

    try_files $uri $uri/ index.php;
  }

  location ~ ^(.+?\.php)(/.*)?$ {
    try_files $1 = 404;

    include fastcgi_params;
    fastcgi_param PATH_INFO $2;
    fastcgi_param HTTPS on;
    fastcgi_pass unix:/var/lib/php5-fpm/web19.sock;
  }


    location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
    expires 30d;
    access_log off;
  }

}
```


----------



## F4RR3LL (17. Apr. 2013)

Sooo nach weiteren 2 Tagen testen hab ich nun die Einstellungen die auch per nginx Direktive gehen (einfach dort reinpasten und vorher fastcgi_pass anpassen)

```
client_max_body_size 10G; 
  fastcgi_buffers 64 4K;

  rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
  rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
  rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

  index index.php;
  error_page 403 = /core/templates/403.php;
  error_page 404 = /core/templates/404.php;

  location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
    deny all;
  }

  location / {

    rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

    rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
    rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

    rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

    try_files $uri $uri/ index.php;
  }

  location ~ ^(.+?\.php)(/.*)?$ {
    try_files $1 = 404;

    include fastcgi_params;
    fastcgi_param PATH_INFO $2;
    fastcgi_param HTTPS on;
    fastcgi_pass unix:/var/lib/php5-fpm/web19.sock;
  }


    location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
    expires 30d;
    access_log off;
  }
```
Jedoch muss noch von Hand diese Passage auskommentiert werden im vhost:

```
#        location ~ \.php$ {
#            try_files /e1648b11a88257cf679e76d102077969.htm @php;
#        }

#        location @php {
#            try_files $uri =404;
#            include /etc/nginx/fastcgi_params;
#            fastcgi_pass unix:/var/lib/php5-fpm/web19.sock;
#            fastcgi_index index.php;
#            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#            #fastcgi_param PATH_INFO $fastcgi_script_name;
#            fastcgi_intercept_errors on;
#        }
```
@ *Till* gibs eine Möglichkeit das irgendwie per Webinterface zu machen?
Wäre ein Kracher 
In der Dokumentation finde ich nur die *merge* Funktion. Doch ich brauche ja eher ein Delete o.ä.
Replace hilft hier leider auch nicht weiter, da es mit location @php und location ~ \.php$ nunmal keinen Block geben soll.

Gruß Sven


----------



## F4RR3LL (18. Apr. 2013)

Till hast Du ne Idee?

hab schon 

```
location ~ \.php$ {
       }

       location @php {
       }
```
bei der Direktive hinzugefügt um weniger ausklammern zu müssen. Doch wenn ich ein # voransetze wirds ignoriert und als weiterer Befehl hinzugefügt. Lässt sich das irgendwie Bewerkstelligen diese 2 Locations per Webinterface auszukommentieren?


----------



## Till (19. Apr. 2013)

Den Nginx conf parser hat Falko geschrieben, ich habe ihn gebeten sich das mal anzusehen.


----------



## falko (19. Apr. 2013)

Probier mal das hier:


```
client_max_body_size 10G;
  fastcgi_buffers 64 4K;

  rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
  rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
  rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

  index index.php;
  error_page 403 = /core/templates/403.php;
  error_page 404 = /core/templates/404.php;

  location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
    deny all;
  }

  location / {

    rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

    rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
    rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

    rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

    try_files $uri $uri/ index.php;
  }

  location ~ ^(.+?\.php)(/.*)?$ {
    try_files $1 = 404;

    include fastcgi_params;
    fastcgi_param PATH_INFO $2;
    fastcgi_param HTTPS on;
    fastcgi_pass unix:/var/lib/php5-fpm/web19.sock;
  }
[B][I]  location @phpowncloud {
    set $1 $uri;
    set $2 '';
    try_files $1 = 404;

    include fastcgi_params;
    fastcgi_param PATH_INFO $2;
    fastcgi_param HTTPS on;
    fastcgi_pass unix:/var/lib/php5-fpm/web19.sock;
  }
  location ~ \.php$ {
    try_files /e1648b11a88257cf679e76d102077969.htm @phpowncloud;
  }[/I][/B]


  location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
    expires 30d;
    access_log off;
  }
```


----------



## F4RR3LL (19. Apr. 2013)

Servus Falko, das funktioniert leider nicht:

Ergebnis im vhost schaut dann so aus: (wie man sieht habe ich noch eine weitere location nun zusätzlich zu denen die eigentl deaktiviert werden sollten)
(Sobald mehr drin ist als nötig funktioniert owncloud, insbesondere Kontakte und Kalender nicht mehr)

```
cat cloud.domain.tld.vhost
server {
        listen *:80;

        listen *:443 ssl;
        ssl_certificate /var/www/clients/client1/web19/ssl/cloud.domain.tld.crt;
        ssl_certificate_key /var/www/clients/client1/web19/ssl/cloud.domain.tld.key;

        server_name domain.tld.de ;

        root   /var/www/cloud.domain.tld/web;



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



        error_log /var/log/ispconfig/httpd/cloud.domain.tld/error.log;
        access_log /var/log/ispconfig/httpd/cloud.domain.tld/access.log combined;

        ## Disable .htaccess and other hidden files
        location ~ /\. {
            deny all;
            access_log off;
            log_not_found off;
        }

        location = /favicon.ico {
            log_not_found off;
            access_log off;
        }

        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }

        location /stats {

            index index.html index.php;
            auth_basic "Members Only";
            auth_basic_user_file /var/www/clients/client1/web19/web/stats/.htpasswd_stats;
        }

        location ^~ /awstats-icon {
            alias /usr/share/awstats/icon;
        }

        location ~ \.php$ {
            try_files /e1648b11a88257cf679e76d102077969.htm @phpowncloud;
        }

        location @php {
            try_files $uri =404;
            include /etc/nginx/fastcgi_params;
            fastcgi_pass unix:/var/lib/php5-fpm/web19.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            #fastcgi_param PATH_INFO $fastcgi_script_name;
            fastcgi_intercept_errors on;
        }


           client_max_body_size 10G;
          fastcgi_buffers 64 4K;

          rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
          rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
          rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

          index index.php;
          error_page 403 = /core/templates/403.php;
          error_page 404 = /core/templates/404.php;

        location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
            deny all;
        }

        location / {

            rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
            rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

            rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
            rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

            rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

            try_files $uri $uri/ index.php;
        }

        location ~ ^(.+?\.php)(/.*)?$ {
            try_files $1 = 404;

            include fastcgi_params;
            fastcgi_param PATH_INFO $2;
            fastcgi_param HTTPS on;
            fastcgi_pass unix:/var/lib/php5-fpm/web19.sock;
        }
        location @phpowncloud {
            set $1 $uri;
            set $2 '';
            try_files $1 = 404;

            include fastcgi_params;
            fastcgi_param PATH_INFO $2;
            fastcgi_param HTTPS on;
            fastcgi_pass unix:/var/lib/php5-fpm/web19.sock;
        }


        location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
            expires 30d;
            access_log off;
        }
```
Zum Vergleich nochmal die funktionierende Config, mit den von mir zuletzt genannten hinzugefügten direktiven und nach dem Auskommentieren im vhost

```
root@host:/etc/nginx/sites-available# cat cloud.domain.tld.vhost
server {
        listen *:80;

        listen *:443 ssl;
        ssl_certificate /var/www/clients/client1/web19/ssl/cloud.domain.tld.crt;
        ssl_certificate_key /var/www/clients/client1/web19/ssl/cloud.domain.tld.key;

        server_name cloud.domain.tld ;

        root   /var/www/cloud.domain.tld/web;



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



        error_log /var/log/ispconfig/httpd/cloud.domain.tld/error.log;
        access_log /var/log/ispconfig/httpd/cloud.domain.tld/access.log combined;

        ## Disable .htaccess and other hidden files
        location ~ /\. {
            deny all;
            access_log off;
            log_not_found off;
        }

        location = /favicon.ico {
            log_not_found off;
            access_log off;
        }

        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }

        location /stats {

            index index.html index.php;
            auth_basic "Members Only";
            auth_basic_user_file /var/www/clients/client1/web19/web/stats/.htpasswd_stats;
        }

        location ^~ /awstats-icon {
            alias /usr/share/awstats/icon;
        }

#        location ~ \.php$ {
#        }

#        location @php {
#        }


          client_max_body_size 10G;
          fastcgi_buffers 64 4K;

          rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
          rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
          rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

          index index.php;
          error_page 403 = /core/templates/403.php;
          error_page 404 = /core/templates/404.php;

        location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
            deny all;
        }

        location / {

            rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
            rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

            rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
            rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

            rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

            try_files $uri $uri/ index.php;
        }

        location ~ ^(.+?\.php)(/.*)?$ {
            try_files $1 = 404;

            include fastcgi_params;
            fastcgi_param PATH_INFO $2;
            fastcgi_param HTTPS on;
            fastcgi_pass unix:/var/lib/php5-fpm/web19.sock;
        }


        location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
            expires 30d;
            access_log off;
        }



}
```


----------



## nowayback (16. Mai 2013)

hi,

ich häng gerade auch über oc auf nginx. aufm indianer hatte ich keine probleme damit, jedoch jetzt auf nginx gibts nen seltsames verhalten... ich hab die aktuelle version neu installiert inkl. neuer db. wenn ich jetzt auf die owncloud domain gehe (beispiel.de), dann steht da "Cloud nicht gefunden". Wenn ich jedoch als anhang index.php benutze (beispiel.de/index.php), dann funktioniert alles.

Du hast nicht zufällig ein ähnliches verhalten oder hast es evtl. gelöst?

Ich hab deine vhost datei in die standartmäßig erzeugte eingepflegt. 


```
server {
        listen i.p.v.4:80;
        listen [i:p:v:6::1]:80;


        server_name domain.de www.domain.de;

        root   /var/www/domain.de/web;



        #index index.html index.htm index.php index.cgi index.pl index.xhtml;



        #error_page 400 /error/400.html;
        #error_page 401 /error/401.html;
        #error_page 403 /error/403.html;
        #error_page 404 /error/404.html;
        #error_page 405 /error/405.html;
        #error_page 500 /error/500.html;
        #error_page 502 /error/502.html;
        #error_page 503 /error/503.html;
        #recursive_error_pages on;
        #location = /error/400.html {

        #    internal;
        #}
        #location = /error/401.html {

        #    internal;
        #}
        #location = /error/403.html {

        #    internal;
        #}
        #location = /error/404.html {

        #    internal;
        #}
        #location = /error/405.html {

        #    internal;
        #}
        #location = /error/500.html {

        #    internal;
        #}
        #location = /error/502.html {

        #    internal;
        #}
        #location = /error/503.html {

        #    internal;
        #}

        error_log /var/log/ispconfig/httpd/domain.de/error.log;
        access_log /var/log/ispconfig/httpd/domain.de/access.log combined;

        ## Disable .htaccess and other hidden files
        location ~ /\. {
            deny all;
            access_log off;
            log_not_found off;
        }

        location = /favicon.ico {
            log_not_found off;
            access_log off;
        }

        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }

        location /stats {

            index index.html index.php;
            auth_basic "Members Only";
            auth_basic_user_file /var/www/clients/client1/web7/web/stats/.htpasswd_stats;
        }

        location ^~ /awstats-icon {
            alias /usr/share/awstats/icon;
        }

        #location ~ \.php$ {
        #    try_files /5c1fe581fed13e085b2b6bf7c71ad717.htm @php;
	#	#try_files $uri = 404 @php;
        #}

        #location @php {
        #    try_files $uri = 404;
        #    include /etc/nginx/fastcgi_params;
        #    fastcgi_pass unix:/var/lib/php5-fpm/web7.sock;
        #    fastcgi_index index.php;
        #    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #    #fastcgi_param PATH_INFO $fastcgi_script_name;
        #    fastcgi_intercept_errors on;
        #}


	 # deny direct access
	 #	location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
	 #	deny all;
	 #}

	 # default try order
	 #location / {
	 #	try_files $uri $uri/ @webdav;
	 #}

	 # owncloud WebDAV
	 #location @webdav {
	#	fastcgi_split_path_info ^(.+\.php)(/.*)$;
	#	fastcgi_pass unix:/var/lib/php5-fpm/web7.sock;
	#	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	#	include /etc/nginx/fastcgi_params;
	 #}

#####
 client_max_body_size 10G; 
  fastcgi_buffers 64 4K;

  rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
  rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
  rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

  index index.php;
  error_page 403 = /core/templates/403.php;
  error_page 404 = /core/templates/404.php;

  location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
    deny all;
  }

  location / {

    rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

    rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
    rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

    rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

    try_files $uri $uri/ index.php;
  }

  location ~ ^(.+?\.php)(/.*)?$ {
    try_files $1 = 404;

    include fastcgi_params;
    fastcgi_param PATH_INFO $2;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    #fastcgi_param HTTPS on;
    fastcgi_pass unix:/var/lib/php5-fpm/web7.sock;
  }


    location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
    expires 30d;
    access_log off;
  }
}
```
die entsprechende error.log sagt nix brauchbares:


> 2013/05/16 23:02:14 [crit] 23025#0: *1 open() "/var/www/domain.de/web/" failed (13: Permission denied), client: 178.x.y.z, server: domain.de, request: "GET / HTTP/1.1", host: "domain.de", referrer: "http://domain.de/index.php/apps/files"
> 2013/05/16 23:02:14 [crit] 23025#0: *1 open() "/var/www/domain.de/web/" failed (13: Permission denied), client: 178.x.y.z, server: domain.de, request: "GET / HTTP/1.1", host: "domain.de", referrer: "http://domain.de/index.php/apps/files"
> 2013/05/16 23:02:14 [error] 23025#0: *1 open() "/var/www/domain.de/web404" failed (2: No such file or directory), client: 178.x.y.z, server: domain.de, request: "GET / HTTP/1.1", host: "domain.de", referrer: "http://domain.de/index.php/apps/files"


und in der access.log steht folgendes:


> 178.x.y.z - - [16/May/2013:23:02:14 +0200] "GET / HTTP/1.1" 200 704 "http://domain.de/index.php/apps/files" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31"
> 178.x.y.z - - [16/May/2013:23:02:14 +0200] "GET /remote.php/core.css?v=389bc7bb1e1c2a5e7e147703232a88f6 HTTP/1.1" 304 0 "http://domain.de/index.php" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31"
> 178.x.y.z - - [16/May/2013:23:02:15 +0200] "GET /index.php/core/js/config.js?v=389bc7bb1e1c2a5e7e147703232a88f6 HTTP/1.1" 200 479 "http://domain.de/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31"
> 178.x.y.z - - [16/May/2013:23:02:15 +0200] "GET /remote.php/core.js?v=389bc7bb1e1c2a5e7e147703232a88f6 HTTP/1.1" 304 0 "http://domain.de/index.php" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31"
> ...


hab es mit chrome und ff getestet und bin so langsam aber sicher am ende... erst recht da ich mich noch ziemlich unsicher im nginx bewege.

Hoffe jemand hat dazu ne idee.

Grüße
nwb


----------



## F4RR3LL (17. Mai 2013)

Warum hast Du         

```
#index index.html index.htm index.php index.cgi index.pl index.xhtml;
```
auskommentiert.
Nimm das wieder rein. 
Gruß Sven


----------



## nowayback (17. Mai 2013)

Zitat von F4RR3LL:


> Warum hast Du
> 
> ```
> #index index.html index.htm index.php index.cgi index.pl index.xhtml;
> ...


hi,

das hatte ich rausgenommen weil weiter unten ja "index index.php" definiert wird und das auch im server{} bereich ist. 

hab es nun wieder reingenommen, jedoch gibts keine änderungen (außer das ich jetzt die fehler doppelt habe in der error.log und access log)... jedes mal wenn ich die domain aufrufe ohne index.php am ende, steht nur da "Cloud nicht gefunden". 

Grüße
nwb


----------



## F4RR3LL (17. Mai 2013)

Hm komisch, wenn ichs drin habe und die Domain aufrufe ergänzt der Server das index.php automatisch. Muss ich selber mal nachschauen warum das so ist.
Gruß Sven


----------



## nowayback (17. Mai 2013)

hi,

habe nun eine lösung für mein problem, jedoch stellt diese mich nicht 100% zufrieden. 

Wenn ich die Rechte des webordners auf 750 setze (chmod 750 /var/www/domain.de/web/), dann funktionierts. 

Das Prob ist nun, dass es eigentlich auch mit chmod 710 laufen müsste und auch sollte.

Naja ich such mal weiter...

Grüße
nwb


----------



## F4RR3LL (17. Mai 2013)

```
drwx--x--- 17 web19 client1  4096 Mai 14 08:25 web
```
bei mir passt es so.... hmmm

sind bei dir evtl innerhalb von web Berechtigungen anders?
Bei mir schauts so aus:

```
ls -la
insgesamt 168
drwx--x--- 17 web19 client1  4096 Mai 14 08:25 .
drwxr-xr-x 10 root  root     4096 Mai 17 11:17 ..
drwxr-xr-x 26 web19 client1  4096 Mai 14 08:25 3rdparty
drwxr-xr-x 32 web19 client1  4096 Mai 14 08:25 apps
-rw-r--r--  1 web19 client1   585 Mai 14 08:24 AUTHORS
drwxr-xr-x  5 web19 client1  4096 Mai 17 11:14 backup
drwxr-xr-x  2 web19 client1  4096 Mai 14 08:24 config
-rw-r--r--  1 web19 client1 34520 Mai 14 08:24 COPYING-AGPL
-rw-r--r--  1 web19 client1   567 Mai 14 08:24 COPYING-README
drwxr-xr-x 10 web19 client1  4096 Mai 14 08:24 core
-rw-r--r--  1 web19 client1  3183 Mai 14 08:24 cron.php
drwxrwx---  4 web19 client1  4096 Mai 17 15:16 data
-rw-r--r--  1 web19 client1 17438 Mai 14 08:24 db_structure.xml
drwxr-xr-x  2 web19 client1  4096 Apr 12 22:35 error
drwxr-xr-x  2 web19 client1  4096 Mai 14 08:24 files
-rw-r--r--  1 web19 client1  1353 Mai 14 08:24 .htaccess
-rw-r--r--  1 web19 client1   179 Mai 14 08:24 index.html
-rw-r--r--  1 web19 client1   853 Mai 14 08:24 index.php
drwxr-xr-x 81 web19 client1  4096 Mai 14 08:24 l10n
drwxr-xr-x 18 web19 client1  4096 Mai 14 08:24 lib
drwxr-xr-x  2 web19 client1  4096 Mai 14 08:24 ocs
-rw-r--r--  1 web19 client1   443 Mai 14 08:24 public.php
-rw-r--r--  1 web19 client1   753 Mai 14 08:24 README
-rw-r--r--  1 web19 client1   960 Mai 14 08:24 remote.php
-rw-r--r--  1 web19 client1    26 Mai 14 08:24 robots.txt
drwxr-xr-x  6 web19 client1  4096 Mai 14 08:24 search
drwxr-xr-x  8 web19 client1  4096 Mai 14 08:24 settings
drwxr-xr-x  3 root  root     4096 Mai 17 00:38 stats
-rw-r--r--  1 web19 client1  1216 Mai 14 08:24 status.php
drwxr-xr-x  2 web19 client1  4096 Mai 14 08:24 themes
```
Gruß Sven


----------



## nowayback (17. Mai 2013)

hi,

außer der webordner sieht alles bei mir genauso aus.... hab es auch nochmal getestet. wenn ich den web ordner wieder auf 710 setze, hab ich wieder die "cloud nicht gefunden" meldung...

sehr seltsam das es bei dir geht und bei mir nicht... 

hatte auch mal das config-testtool drüber laufen lassen. da wurde mir auch alles richtig angezeigt.


----------



## F4RR3LL (17. Mai 2013)

Dann bleiben nur noch die Einstellungen:










SSL Cert nutz ich von StartSSL und SNI da ich den Server nur mit einer IP Nutze.
In der nginx Direktive steht noch nen bissl mehr drin. Aber das haste ja eh schon übernommen.

Gruß Sven


----------



## nowayback (17. Mai 2013)

hi,

vielen dank für deine mühen, aber auch das hat mich nicht weitergebracht... ich habe ähnliche einstellungen wie du. Hier mal die Unterschiede:

IPv4 - Du: * - Ich: meine IPv4
IPv6 - Du: nichts - Ich: meine IPv6
Autosubdomain - Du: keine - Ich: www.

Der Rest der Einstellungen ist identisch. Was ich nicht nutze ist SSL. Ich hab daher auch die entsprechenden Einstellungen in dem vhost auskommentiert, bzw. gar nicht erst reingenommen. Muss ja schliesslich auch ohne SSL gehen. 

Welche OS Version setzt du ein und welche PHP Version? Vielleicht ist hier der Hund irgendwo begraben... Ich hab es aktuell auf einem Debian Wheezy System mit nginx 1.4.1 und PHP 5.4.15-1

grüße
nwb


----------



## F4RR3LL (18. Mai 2013)

Dann dürften es selbige Pakete wie bei mir sein

```
cat /etc/debian_version 
7.0

dpkg -l | grep nginx
ii  nginx                            1.2.1-2.2                    all          small, powerful, scalable web/proxy server
ii  nginx-common                     1.2.1-2.2                    all          small, powerful, scalable web/proxy server - common files
ii  nginx-full                       1.2.1-2.2                    amd64        nginx web/proxy server (standard version)

dpkg -l | grep php
ii  php-apc                          3.1.13-1                     amd64        APC (Alternative PHP Cache) module for PHP 5
ii  php-pear                         5.4.4-14                     all          PEAR - PHP Extension and Application Repository
ii  php-xml-parser                   1.3.4-6                      all          PHP PEAR module for parsing XML
ii  php5                             5.4.4-14                     all          server-side, HTML-embedded scripting language (metapackage)
ii  php5-cli                         5.4.4-14                     amd64        command-line interpreter for the php5 scripting language
ii  php5-common                      5.4.4-14                     amd64        Common files for packages built from the php5 source
ii  php5-curl                        5.4.4-14                     amd64        CURL module for php5
ii  php5-fpm                         5.4.4-14                     amd64        server-side, HTML-embedded scripting language (FPM-CGI binary)
ii  php5-gd                          5.4.4-14                     amd64        GD module for php5
ii  php5-imagick                     3.1.0~rc1-1+b2               amd64        ImageMagick module for php5
ii  php5-imap                        5.4.4-14                     amd64        IMAP module for php5
ii  php5-intl                        5.4.4-14                     amd64        internationalisation module for php5
ii  php5-mcrypt                      5.4.4-14                     amd64        MCrypt module for php5
ii  php5-memcache                    3.0.6-6                      amd64        memcache extension module for PHP5
ii  php5-ming                        1:0.4.4-1.1                  amd64        Ming module for php5
ii  php5-mysql                       5.4.4-14                     amd64        MySQL module for php5
ii  php5-ps                          1.3.7-1                      amd64        ps module for PHP 5
ii  php5-pspell                      5.4.4-14                     amd64        pspell module for php5
ii  php5-recode                      5.4.4-14                     amd64        recode module for php5
ii  php5-snmp                        5.4.4-14                     amd64        SNMP module for php5
ii  php5-sqlite                      5.4.4-14                     amd64        SQLite module for php5
ii  php5-tidy                        5.4.4-14                     amd64        tidy module for php5
ii  php5-xmlrpc                      5.4.4-14                     amd64        XML-RPC module for php5
ii  php5-xsl                         5.4.4-14                     amd64        XSL module for php5
```


----------



## nowayback (22. Mai 2013)

hi,

danke. Das bestätigt schonmal meine Annahme das wir unterschiedliche Nginx und PHP Versionen einsetzen. Ich werde es, hoffe ich komme in den nächsten Tagen dazu, mal mit den älteren Versionen testen.

Grüße
nwb


----------



## F4RR3LL (23. Mai 2013)

Servus,
haste die Repos angepasst bei Dir? Meine sind Default.

```
cat /etc/apt/sources.list
deb http://ftp.de.debian.org/debian wheezy main contrib non-free 
deb http://ftp.de.debian.org/debian wheezy-updates main contrib non-free 
deb http://ftp.de.debian.org/debian-security wheezy/updates main contrib non-free
```
Die nutze ich auf dem Server mit owncloud.


Gruß Sven


----------



## nowayback (23. Mai 2013)

hi,

ich nutze absichtlich die nginx version 1.4.x. Das ist gewollt. Daher hab ich auch dafür extra das dotdeb repo eingefügt. Mich interessiert dabei im speziellen die spdy unterstützung, da ich viele Bilder in owncloud habe und sich das da sehr positiv auf die ladezeiten auswirkt. 
ich weiß, ich könnte mir nginx 1.2.x auch selbst basteln mit spdy unterstützung, aber es ist meiner meinung nach sinnvoller, wenn es packages gibt, die die ansprüche erfüllen, diese auch zu nutzen.

Grüße
nwb


----------



## nowayback (24. Mai 2013)

so...

wie bereits vermutet liegt mein problem an der nginx 1.4.1 version. warum genau erschließt sich mir jedoch nicht. desweiteren hab ich trotz der version 1.2.x das problem das die max_file_size werte zwar gelesen werden, aber ich trotzdem nichts hochladen kann... 

alles im allen hab ich also mehr probleme als nutzen mit nginx und werde daher wohl wieder auf apache2 umsteigen und dann lieber libapache2_mod_spdy nutzen auch wenn mir der schnellere nginx lieber gewesen wäre.

trotzdem danke für deine hilfe


grüße
nwb


----------



## nowayback (25. Mai 2013)

> desweiteren hab ich trotz der version 1.2.x das problem das die max_file_size werte zwar gelesen werden, aber ich trotzdem nichts hochladen kann...


Lösung:
upload_max_filesize und post_max_size nicht über 2GB setzen - hierbei spielt es keine Rolle ob Apache oder Nginx im Einsatz sind. Liegt wohl scheinbar daran das die php version nur 32 bit ist/kann... 


Grüße
nwb


----------



## F4RR3LL (25. Mai 2013)

Klingt doch schonmal gut. 2GB sollten für ne Owncloud eh mehr als ausreichend sein.
Bzgl der Version da muss ich direkt mal nachlesen. Das muss ja nen Grund haben warums in der 1.4. mit dem Index anders ist.
Ich finde der Nginx ist zwar eine Umstellung. Grade auch bei den CMS und so. Doch alles in allem hat sich der Wechsel in Bezug auf die Preformance absolut gelohnt.

Gruß Sven


----------



## beyerservice (1. Aug. 2014)

Falls jemand darauf stößt:

es hat noch ein :

```
fastcgi_param SCRIPT_FILENAME $document_root$1;
```
bei den fastcgi-Dingern gefehlt.
seltsamerweise musst ich nichts mehr auskommentieren.
meine nginx directive (in ispconfig): SSL hab ich noch nicht eingerichtet

```
client_max_body_size 10G; 
  fastcgi_buffers 64 4K;

  rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
  rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
  rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

  index index.php;
  error_page 403 = /core/templates/403.php;
  error_page 404 = /core/templates/404.php;

  location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
    deny all;
  }

  location / {

    rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

    rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
    rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

    rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

    try_files $uri $uri/ index.php;
  }

  location ~ ^(.+?\.php)(/.*)?$ {

    try_files $1 = 404;

    include fastcgi_params;
    fastcgi_param PATH_INFO $2;
fastcgi_param SCRIPT_FILENAME $document_root$1;
   # fastcgi_param HTTPS on;
    fastcgi_pass unix:/var/lib/php5-fpm/web2.sock;
  }


    location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
    expires 30d;
    access_log off;
  }
```
EDIT: doch nicht: die 

```
#        location ~ \.php$ {
#            try_files /58640151277a1fbdac11a29af2e867e8.htm @php;
#        }
#
#        location @php {
#            try_files $uri =404;
#            include /etc/nginx/fastcgi_params;
#            fastcgi_pass unix:/var/lib/php5-fpm/web2.sock;
#            fastcgi_index index.php;
#            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#            fastcgi_intercept_errors on;
#        }
```
müssen auskommentiert werden im vhost! Sonst können z.B. keine Einstellungen in owncloud gespeichert werden.


----------



## YoSiJo (13. Okt. 2015)

Wie ich festellen durfte, ist das Problem immernoch vorhanden, wie sieht es da aus, wird sich da noch was tun?


----------



## Till (13. Okt. 2015)

Es gibt da kein Problem dass irgendwelche Änderungen an ISPConfig erfordern würde. Wie mit jeder Software die URL Rewritng unter nginx nutzt musst Du lediglich die zur Software passenden Rewrite Regeln in Nginx Syntax erstellen und in das nginx Direktiven Feld einfügen, das ist alles.


----------



## YoSiJo (13. Okt. 2015)

Leider nicht, weiterhin ist es nötig, manuell die vhost datei von Niginx zu editieren um, wie oben schon beschrieben, die auskommentierung vor zu nehmen.


----------



## Till (13. Okt. 2015)

Das ist aus 2 Gründen falsch, zum einen ist es überhaupt nicht nötig eine doppelte php location einzufügen denn die von ISPConfig funktioniert ja bereits einwandfrei mit owncloud und selbst wenn man eine neue einfügen möchte kann man diese mittels ##delete## Direktive entfernen oder neue einträge in die bestehende mittels ##merge## einfügen.


----------



## F4RR3LL (13. Okt. 2015)

von der delete funktion lese ich grad das erste mal.. klasse Geschichte! *like*


----------



## nowayback (13. Okt. 2015)

Zitat von F4RR3LL:


> von der delete funktion lese ich grad das erste mal.. klasse Geschichte! *like*


ich muss gestehen, als ich das heute nachmittag gelesen habe, dachte ich auch "wow" aber dann machte sich bei mir eher Ernüchterung breit. Wenn es sowas wie merge und delete gibt, warum ist das nirgends dokumentiert? Warum war dann nicht schon hier https://www.howtoforge.de/forum/threads/ispconfig-3-owncloud-5-0-nginx.6828/#post-35348 oder hier https://www.howtoforge.de/forum/threads/ispconfig-3-owncloud-5-0-nginx.6828/#post-35349 die Rede? Im Handbuch konnte ich auch nichts dazu finden. Vielleicht liegts daran dass das schon älter ist. Ich konnte auch in keinem Changelog irgendwas dazu finden. 

Also Funktion Gut -> Information und Dokumentation nicht


----------



## F4RR3LL (13. Okt. 2015)

Die merge Funktion ist dokumentiert ... die kannte ich, aber das Delete, das war/ist mir neu. Aber das Handbuch wird ja auch nimmer aktualisiert. Hat sich wohl nicht gelohnt.


----------



## Till (13. Okt. 2015)

Das Handbuch wird für jede Major Version von ispconfig aktualisiert.  Die aktuelle major version ist 3.0.5 und die nächste Version ist 3.1 und für 3.1 gibt es dann ein neues Handbuch.

Es wäre sicherlich schön das Handbuch öfter zu aktualisieren aber bei > 95% Raubkopien rate ist das nicht so leicht zu finanzieren.


----------



## YoSiJo (14. Okt. 2015)

Nun bin ich jemand der des Handbuch in keiner der genannten Variationen vorliegen hat und daher mal in die Runde Frage, wie eure Direktiven den aussehen bei Owncloud ohne manuelle Anpassung der vhost Dateien von nginx?


----------

