What does "existence failed (20: Not a directory) while logging request" error log on Nginx mean?

frlan asked:

At an webserver with Nginx and php-fpm and Roundcube I’m seeing entries like this:

2016/10/12 11:22:55 [error] 342342#0: *234242 testing "/some/path" existence failed (20: Not a directory) while logging request, client: xx.xx.xx.xx, server: server.example.org, request: "GET /webmail/?_task=mail&_action=getunread&_remote=1&_unlock=0&_=2422423423 HTTP/1.1", upstream: "fastcgi://", host: "server.example.org", referrer: "https://server.example.org/foo"

inside error.log of Nginx. What does this line mean?

My answer:

You have used an access_log directive which contains variables. When you do this, nginx checks for the existence of the document root when logging each request. The root must exist and must be a directory. In this case, the error means that you have set the root to a file, not a directory. To fix the problem, set root to a directory.

View the full question and any other answers on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.