nginx启动失败之nginx: [emerg] invalid number of arguments in "root" directive in nginx/nginx.conf:41
程序员文章站
2022-05-24 18:05:57
...
Write By Monkeyfly
以下内容均为原创,如需转载请注明出处。
前提
- 由于更换了新的
SVN
地址,所以必须在新的SVN
地址上重新检出所有的项目至本地。 - 因为之前都习惯用中文命名文件夹,这次就想尝试用英文命名。而且之前也听别人说
中文命名可能会导致某些问题
。 - 命名的项目文件都会以文件路径的形式出现在
nginx
的conf
配置文件中,所以建议用英文命名
。 - 我一直都是使用中文命名的,使用半年了,也从来没出现过问题。
过程
- 于是,随手新建了一个名为
New Projects
的文件夹,用于存放从SVN
地址新导出的几个项目。 - 导出成功后,在
nginx
的conf
配置文件中,配置一下每个项目对应的文件路径。【如图一所示】 - 配置完成后,在文件资源管理器上方的地址栏中选中并复制自己本地
nginx
的存放路径。【如图二所示】 - 我的本地存放路径是
C:\Users\Administrator\Desktop\nginx-1.13.7
- 然后
Ctrl + R
调出运行对话框,输入cmd
并回车打开命令行。 - 接下来,使用
cd
命令进入nginx
的主目录中,即cd C:\Users\Administrator\Desktop\nginx-1.13.7
。 - 随后在命令行中输入
nginx -s reload
命令重启nginx
。【如图三所示】
(因为更改配置文件之后必须需要重启nginx
才能保证修改的配置生效) - 重启成功之后,就可以在浏览器中访问当前所配置好的项目了。
图一
图二
图三(以下是配置正确的情况)
问题来了
nginx
重启之后,问题就出来了。(如下图所示)
然后使用nginx -t
命令来判断配置文件是否正确。发现问题依然定位在了配置文件的第41
行。
问题分析
nginx: [emerg] invalid number of arguments in "root" directive in C:\Users\Administrator\Desktop\nginx-1.13.7/conf/nginx.conf:41
/*大概意思就是:nginx在本地文件路径的配置文件中存在了错误,导致无法继续运行。
*具体错误定位在了conf配置文件的第41行。
*错误原因:“根”指令中存在无效数量的参数。
*/
- 总之就是提示第
41
行的配置文件出错了,出错的具体原因我也不清楚。 - 因为我觉得是不可能出现问题的,总共就一行代码,而且文件路径也是正确的。
- 首先就排除了中文命名导致的问题,因为自己以前一直使用中文命名,从未出错过。
- 所以,肯定是其他的问题。但是我就是不知道为什么。(于是百度了一番,但并没有找到想要的答案)
- 找到一个同样问题的答案,但最终的原因是
代码末尾少写了一个分号导致的
,与我的情况完全不符。 - 后来去群里询问了一下,毕竟人多力量大,就有大佬给出了实质性的建议(如下图示)。
问题定位
//问题定位:nginx.conf配置文件 第41行
root C:/Users/Administrator/Desktop/NewProjects/快递公众号/;
- 经过仔细的观察,才发现原来是
文件的英文命名格式出现了错误
,具体如下图所示。 - 在文件命名时,习惯性的在两个单词之间添加了一个空格,才导致后续问题的发生。
- 然后去掉空格,保存配置后,重启了
nginx
,问题就消失了,项目也可以成功运行了。
结束语
- 吃一堑长一智,以后在命名文件夹时一定要注意这两个雷区:
中文和空格
。 - 因为命名的文件是会以文件路径的形式出现在
nginx
的配置文件中的,而且配置文件中是不允许文件路径中存在空格的。【这一点一定要注意!!!】
上一篇: latex 让表格宽度与文本宽度相同
下一篇: 获取屏幕高度