On 10/17/2014 07:36 PM, "Jan B. Kolář" wrote:
> Dear all,
>
> I can't figure out how to set up Nginx for "rest.php" authentication to
> work. I'm using Nginx+PHPfpm and MySQL as backend (I want use "Internal
> authentication"). Web interface is working fine - I can log in without a
> problem.
>
> But I can't use integration with Thunderbird, because "rest.php" file is
> always returning "401 Unauthorized" without asking for username and
> password (no login dialog appear). I can't find any help in manual.
>
> My Nginx config part for "rest.php" file is:
>
> location = /rest.php {
> fastcgi_pass_header Authorization;
> fastcgi_pass unix:/var/run/dl.smurv.cz-fpm.sock;
> fastcgi_index index.php;
> include fastcgi_params;
> }
I just tried a stock DL 0.15 using nginx on Debian.
When installed as a subdirectory, I could get DL to work with the following:
location ^~ /dl {
# Protect the include directories
location ~ ^/dl(?:/|/.*/)include {
deny all;
}
index index.php index.html;
try_files $uri $uri/ =404;
# Enable PHP
location ~ \.php(?:$|/) {
include fastcgi_params;
# Set maximum body size (should be the same as PHP's post_max_size)
client_max_body_size 512M;
# Setup PATH_INFO
fastcgi_split_path_info ^(.+\.php)(/.+)$;
try_files $fastcgi_script_name =404;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
}
Notice the order of the location directives to protect the include directories,
and also the PHP location matching ``\.php(?:$|/)'' in order to allow PATH_INFO
to route requests properly.
After that I didn't need to forward any header explicitly, and it works fine.
Let me know if this helps.