use subdirectories instead of subdomains
Jim Ohlstein
jim at ohlste.in
Fri Apr 25 18:17:33 UTC 2014
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
More information about the nginx
mailing list