我试图运行nginx作为一个非特权用户 – 具体来说,我平常的loginID。 我发现我无法成功启动nginx,因为它坚持尝试在/var/log/nginx/打开日志文件,即使当我提供的configuration文件告诉它将文件存储在别处时也是如此。
具体来说,我这样调用nginx:
$ nginx -c ~/my-nginx.conf
该命令中提到的configuration文件具有这种forms:
pid /home/me/nginx/nginx.pid; events { worker_connections 1024; } http { access_log /home/me/nginx/access.log; error_log /home/me/nginx/error.log; # many more lines omitted }
省略的行都不包含access_log或error_log指令,也不包含通过include指令包含的less数几个文件。
打印这些行后,nginx总是死掉:
nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied) 2016/06/13 12:43:54 [emerg] 4473#0: open() "/var/log/nginx/error.log" failed (13: Permission denied)
但是,它会在死亡之前创build零configuration文件中提到的日志文件。
为什么nginx试图打开这些文件,以及如何防止这样做呢?
你已经把你的error_log指令放在http级别。 这个指令可以在更高的层次上进行 。 尝试将您的指令复制到HTTP块之外的nginx.conf文件的顶部。