由于Windows版本的Nginx其实是在Cygwin环境下编译的,所以Nginx使用的是Cygwin的路径格式,所以在Nginx的配置文件nginx.conf中,路径既不能使用*nix的格式,也不能使用Windows系统的格式,而要使用Cygwin的格式,即: C盘的C:/ 用/cygdrive/c/表示,D盘的D:/ 用/cygdrive/d/表示,以次类推。例如: 我们设置访问 http://www.#yours.com 时读取D:/www/ location / { root /cygdrive/d/www/; # '/cygdrive/d/' = 'D:/' in Nginx under Cygwin index index.html index.htm; } 如果我们需要在访问 http://www.#yours.com/newsA/ 时读取目录D:/www/newsB/,那么我们需要使用Nginx的alias或rewrite等指令,例如 location /newsA/ { alias /cygdrive/d/www/newsB/; } 如果我们需要设置访问http://www.#yours.com/vip/ 时读取另一个硬盘上的东西,比如F:/www2/ ,可以这样: location /vip/ { alias /cygdrive/f/www2/; # /cygdrive/f/ for Driver F } 另外需要注意的是,如果你使用了FASTCGI配置PHP,那么设置fastcgi_param SCRIPT_FILENAME这行的时候,必须使用设置的Windows路径格式,因为这里的参数值是Nginx传递给PHP使用的,而PHP只能识别Windows格式,例: location ~ .*/.php$ { # 注意这里老版本用的“~ /.php$”好像有问题 fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME D:/www$fastcgi_script_name; # 这里必须使用Windows格式路径(D:/www) include fastcgi_params; # 注意fastcgi_params中去掉SCRIPT_FILENAME这行 } (责任编辑:IT) |