Hello,

On 4/25/14, 1:17 PM, Thuban wrote:
     root /var/www/mysite;
     location /owncloud {
         alias /var/www/mysite/owncloud;
         include /etc/nginx/conf.d/owncloud.conf;
         }

, but services like owncloud need `location` rules too, so I finally
have "location /example is outside location" errors.

How can I configure nginx for this?

Why are you using an alias here? If the root is /var/www/mysite then

location /owncloud

would be interpreted as /var/www/mysite/owncloud which I'm guessing
is what you want.

Because the owncloud.conf contains `location` rules like this :

     location = /robots.txt {
             allow all;
             log_not_found off;
             access_log off;
         }
         location / {
                 # The following 2 rules are only needed with webfinger
                 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;
         }

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

     # enable php
         location ~ ^(.+?\.php)(/.*)?$ {
         try_files $1 = 404;
         include fastcgi_params;
         fastcgi_param SCRIPT_FILENAME $document_root$1;
         fastcgi_param PATH_INFO $2;
         fastcgi_param HTTPS on;
         fastcgi_pass unix:/var/run/php5-fpm.sock;

     }


I'm still not sure you've actually given a reason why you need an alias.

Those rules appear to be more or less a direct copy of the rules which are at http://doc.owncloud.org/server/5.0/admin_manual/installation/installation_others.html. In my personal experience, they work perfectly well on ownCloud 6. You're almost certainly seeing "outside location" errors because of issues with the root path or because of the way you have written the included file.

I'd suggest following the exact instructions in the above link without an included file and *without* an unnecessary alias.

If they don't work, try rewriting them without nested locations. Use the full path for each location. Read the docs at http://nginx.org/en/docs/http/ngx_http_core_module.html#location to understand how locations are matched and this entire problem will be much easier to understand.

If you can get them working without nested locations, you can nest some if you want, but consider reading this thread about nested locations: http://forum.nginx.org/read.php?2,174517,174517.

--
Jim Ohlstein


"Never argue with a fool, onlookers may not be able to tell the difference." - Mark Twain

_______________________________________________
nginx mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx

Reply via email to