0

nginx 通过命令行接受一个参数来指定配置文件的位置:

-c filename   : set configuration file 

对于我的用例,filename必须是相对于当前工作目录的路径,但 nginx 似乎总是filename相对于其安装位置进行解释:

$ nginx -c nginx.conf
=> nginx: [emerg] open() "/usr/local/Cellar/nginx/1.4.1/nginx.conf" failed (2: No such file or directory)

甚至可以为 nginx 传递一个 cwd 相对路径filename吗?“否”是可以接受的答案。

4

1 回答 1

1

它相对于在配置和编译期间--prefix传递给configure它,在大多数情况下,它很可能/usr是相对于那个。

例如在我的机器上:

$ nginx -V产量:

nginx version: nginx/1.2.6
built by gcc 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1)
TLS SNI support enabled
configure arguments: --prefix=/usr --with-http_ssl_module ... other stuff...

请注意--prefix=/usr,这是您-c相对于的基本路径。

因此:

$ nginx -t -c nginx.conf

失败:

$ nginx -t -c nginx.conf
nginx: [emerg] open() "/usr/nginx.conf" failed (2: No such file or directory)

很明显,nginx 看起来是相对于--prefix

于 2013-06-16T01:38:56.227 回答