Nginx on Windows: Problem with leading slash on root path (GetFileAttributesEx() fails because of wrong Path syntax)
Alexander Vogt
av at creativespot.de
Sun Mar 14 19:27:04 MSK 2010
Hi everyone,
i want to run nginx+php on windows for development purposes.
Im using the nginx-0.8.34 native build from the nginx download page (no
cygwin ports). PHP and static files are served, although the following
problems occur:
1. PHP is executed correctly, but it always sends a "500 internal server
error" header
2. static files (for example css, js, etc) are sent with a "text/html" mime
type, causing css not to be displayed on firefox
I digged a bit deeper, in the error.log i find a lot of lines like this:
58:42 [crit] 476#3664: *4 GetFileAttributesEx()
"/C:/creativespot/dslocal/rollout/public_html/style_combined/50b1a4103b08a80dd9bd0c2a706eaa17.css"
failed (123: Die Syntax für den Dateinamen, Verzeichnisnamen oder die
Datenträgerbezeichnung ist falsch), client: 127.0.0.1, server:
dogspot.local, request: "GET
/style_combined/50b1a4103b08a80dd9bd0c2a706eaa17.css HTTP/1.1", host:
"dogspot.local"
The error message says GetFileAttributesEx failed because of a wrong
path/filename syntax. What seems to be the problem is the leading slash on
the root directory: "/C:/creativespot/....." which should be
"C:/creativespot/....".
I believe that this might be the reason for not determining the correct
mime-type (mime.types file is included correctly, i even tried to embed the
whole "types {...}" section directly in nginx.conf, which didnt fix that
issue). I also tried to use relative paths, absolute paths with drive
letters, absolute paths without drive letters, but no difference, whatever i
do, nginx always seems to prefix my path with a leading "/".
How can i fix that? any help appreciated!
Here are some details on my server layout:
- nginx 0.8.34 native in c:\creativespot\dslocal\nginx
- web root should be c:\creativespot\dslocal\dsrollout\public_html
- starting nginx from a batch script that does a "cd" to the nginx directory
and a "start /b nginx.exe"
- nginx.conf:
worker_processes 1; error_log
c:/creativespot/dslocal/nginx/logs/error.log; pid
c:/creativespot/dslocal/nginx/nginx.pid; events {
worker_connections 1024;
}
http {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 6m;
proxy_buffer_size 16k;
proxy_buffers 32 16k;
include c:/creativespot/dslocal/nginx/conf/mime.types;
include c:/creativespot/dslocal/nginx/conf/sites-available/*;
}
the vhost conf:
server {
listen 80 default_server;
server_name dogspot.local;
root c:/creativespot/dslocal/rollout/public_html;
index index.php;
location /images {
rewrite ^/images/(.*) /images/dogspot/$1;
break;
}
location / {
if (!-e /$request_filename) {
rewrite .* /request_router.php last;
}
if ($uri = /) {
rewrite .* /request_router.php last;
}
}
location ~ \.php$ {
include c:/creativespot/dslocal/nginx/conf/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
c:/creativespot/dslocal/rollout/public_html/request_router.php;
}
}
More information about the nginx
mailing list