Hi,
I’ve read a lot of threads (like this ) but I can’t solve my problem.
It’s my first day working with nginx, so I’m a really newbie.
Here is a part of my nginx.conf
server {
listen 80;
server_name myserver.es;
location ~* /apc {
root /usr/local/nginx/htdocs/;
auth_basic “Restricted”;
auth_basic_user_file /usr/local/nginx/htdocs/.htpasswd;
rewrite ^/apc($|/.*) $1 break;
}
location ~..php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
/usr/local/nginx/htdocs$fastcgi_script_name;
include /usr/local/nginx/conf/fastcgi_params;
}
When I load in my browser myserver.es/apc.php the password for
Restricted is requestes, so I introduce it. But then the browser does
not load php, it shows the php in the browser. If I open
myserver.es/index.php it’s loaded properly, as other php files in my
directory.
Any help? It woul be very apreciated 
Thank you in advance
Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,74117,74117#msg-74117
Hi,
finally, I’ve solved it.
server {
listen 80;
server_name myserver.es;
location ~*/apc {
#root /usr/local/nginx/htdocs;
auth_basic “Restricted”;
auth_basic_user_file /usr/local/nginx/htdocs/.htpasswd;
location ~.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
/usr/local/nginx/htdocs$fastcgi_script_name;
include /usr/local/nginx/conf/fastcgi_params;
}
}
location ~.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
/usr/local/nginx/htdocs$fastcgi_script_name;
include /usr/local/nginx/conf/fastcgi_params;
}
}
Solution posted.
Thank you
Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,74117,74401#msg-74401
I know this is old, but for those still finding this in search engines,
thats not the ‘correct’ fix, though it could work, The problem us using
a root path inside of the location block, if you move the root outside
of location and into the server { } block, then there is no need to have
a duplicated nested php block, nor is there a need to manually define
the document root since $document_root would be correctly filled by that
point.
ie:
server {
listen 80;
server_name myserver.es;
root /usr/local/nginx/htdocs;
location ~*/apc {
auth_basic “Restricted”;
auth_basic_user_file /usr/local/nginx/htdocs/.htpasswd;
}
location ~.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#if the line isn't already in fastcgi_params
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /usr/local/nginx/conf/fastcgi_params;
}
}
Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,74117,172193#msg-172193