Welcome! Log In Create A New Profile

Advanced

Location - or how to setup sites in subfolders

Daniel L. Miller
April 29, 2012 04:08PM
I'm trying to give nginx a try as an alternative to my current server
solutions. Named-based virtual hosting SEEMS straightforward enough -
but I'm having a devil of a time trying to get subfolder based sites to
work. In other words -

egroupware.mydomain.com
roundcubemail.mydomain.com
ldap-account-manager.mydomain.com

for some examples, work just fine. But trying to get -

www.mydomain.com/egroupware
www.mydomain.com/roundcubemail
www.mydomain.com/ldap-account-manager

to work is an exercise in extreme frustration. I'm sure it doesn't HAVE
to be - but Google thus far has let me down in retrieving the
information I need. What I've done thus far, for egroupware for example:

I have a site file with:
server {
server_name www.amfeslan.local egroupware.amfeslan.local;
root /opt/egroupware;
index index.php;

client_max_body_size 8M;
rewrite ^/egroupware/(.*)$ /$1 last;
try_files $uri $uri/ /index.php$args;

include global/php.conf;
}

my global/php.conf has:
location ~ \.php$ {
# There's gotta be a better way to do this - try and find it.
# Since nginx's "best" match is this one - need to do rewrites
# here to get subfolders to work.
set $php_root $document_root;
if ($request_uri ~* /egroupware) {
set $php_root /opt/egroupware;
}

# Zero-day exploit defense.
try_files $uri =404;

fastcgi_split_path_info ^(.+\.php)(/.+)$;

include fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $php_root$fastcgi_script_name;
fastcgi_pass php;
}

Note that I tried to add the "if" construct in php.conf based on a
previous post - and I gotta believe there's a better way to do this.
With or without the if construct, the above site works - but only for
egroupware. Revising the site file to:
server {
server_name www.amfeslan.local egroupware.amfeslan.local;
root /var/www;
index index.html;

client_max_body_size 8M;

location / {
try_files $uri $uri/ /index.php?$args;
}

location ^~ /egroupware {
root /opt/egroupware;
index index.php;
rewrite ^/egroupware/(.*)$ /$1 last;
try_files $uri $uri/ /index.php$args;
}

include global/php.conf;
}

Doesn't work right. Can some kind soul help me not only fix this - but
get a better understanding of how to build these generic constructs?
Based on experience with other servers, I can't believe folder-based
controls in nginx can be as difficult as I seem to be making it!
--
Daniel

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

Location - or how to setup sites in subfolders

Daniel L. Miller April 29, 2012 04:08PM

Re: Location - or how to setup sites in subfolders

Edho Arief April 29, 2012 04:24PM

Re: Location - or how to setup sites in subfolders

Daniel L. Miller April 29, 2012 05:18PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 183
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready