Issue with variables in access_log and error_log

dale gallagher dale.gallagher at
Wed Jul 29 21:30:57 MSD 2009

Hi there

I'm running nginx 0.7.61 on Linux. Using spawn-fcgi under damontools
which runs under a separate uid per virtual host and creates a socket

I've configured nginx as per the config below. Everything works well,
but including variables in access_log and error_log give the error:

[emerg]: open() "/usr/$webroot/$domain/log/error.log" failed (2: No such
file or directory)

This seems to indicate that the variables aren't being expanded
properly? In particular, the prepended '/usr' part must be from the
--prefix definition when building nginx???

nginx runs as user 'www' which has write access to each of the
/var/www/$domain/log directories (by group ownership and 770 perms).

Any pointers would be appreciated.


----- config -----

user www;
http {
   server {
     listen 80;

     server_name _;
     server_name_in_redirect off;

     set $webroot /var/www;

     set $domain $host;
     if ($domain ~ "^(w{3}\.)?(.*)") {
       set $domain $2;

     access_log $webroot/$domain/log/access.log;
     error_log $webroot/$domain/log/error.log error;

     root $webroot/$domain/public;

     location / {
       index index.html index.php index.php4 dispatch.fcgi index.cgi;
       try_files $uri $uri/ @wordpress;
     # serve static files directly
     location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|html)$ {
       expires 30d;
     location ~* \.(ht|conf$|db$|lib$|cfg$|inc$|bak$) {
       deny all;
     location ~ \.php$ {
       try_files $uri @wordpress;
       fastcgi_pass   unix:/var/run/php/$domain/socket;
       fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
       include        fastcgi_params;
     location @wordpress {
       fastcgi_pass   unix:/var/run/php/$domain/socket;
       fastcgi_param  SCRIPT_FILENAME $document_root/index.php;
       include        fastcgi_params;

More information about the nginx mailing list