On Wed, Jan 13, 2010 at 09:31:34PM -0500, lnxa wrote:
root /data0/www/abc;
server root is /data0/www/abc.
index index.htm index.html index.php;
location /blog/ {
root /data0/www;
location /blog/ has root redefined into /data0/www, so
“/blog/info.txt” will be searched in file “/data0/www/blog/info.txt”.
}
#php fastcgi
location ~ .*\.php?$ {
Just a side note: did you mean “~ .php$”? Prefix “.*”
meaningless as it matches everything, and “?” looks strange since
you probably don’t want “.ph” files to be passed to php.
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi.conf;
location ~ .php$ has no root explicitly defined, and therefore
uses one inherited from server, i.e. “/data0/www/abc”. So
“/blog/index.php” will be mapped into
“/data0/www/abc/blog/index.php”.
Note: resulting file names in 2 and 3 are very different. If you
want them to be in the same directory - you probably want to
define identical roots for both locations (i.e. define correct
one in server and don’t redefine in locations).