nginx启动失败之nginx: [emerg] invalid number of arguments in root directive in nginx/nginx.conf:41

2024-03-23 09:08

本文主要是介绍nginx启动失败之nginx: [emerg] invalid number of arguments in root directive in nginx/nginx.conf:41,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Write By Monkeyfly

以下内容均为原创,如需转载请注明出处。

前提

  • 由于更换了新的SVN地址,所以必须在新的SVN地址上重新检出所有的项目至本地。
  • 因为之前都习惯用中文命名文件夹,这次就想尝试用英文命名。而且之前也听别人说中文命名可能会导致某些问题
  • 命名的项目文件都会以文件路径的形式出现在nginxconf配置文件中,所以建议用英文命名
  • 我一直都是使用中文命名的,使用半年了,也从来没出现过问题。

过程

  • 于是,随手新建了一个名为New Projects的文件夹,用于存放从SVN地址新导出的几个项目。
  • 导出成功后,在nginxconf配置文件中,配置一下每个项目对应的文件路径。【如图一所示】
  • 配置完成后,在文件资源管理器上方的地址栏中选中并复制自己本地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的配置文件中的,而且配置文件中是不允许文件路径中存在空格的。【这一点一定要注意!!!】

这篇关于nginx启动失败之nginx: [emerg] invalid number of arguments in root directive in nginx/nginx.conf:41的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/837826

相关文章

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

SpringBoot整合Dubbo+ZK注册失败的坑及解决

《SpringBoot整合Dubbo+ZK注册失败的坑及解决》使用Dubbo框架时,需在公共pom添加依赖,启动类加@EnableDubbo,实现类用@DubboService替代@Service,配... 目录1.先看下公共的pom(maven创建的pom工程)2.启动类上加@EnableDubbo3.实

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)

nginx中端口无权限的问题解决

《nginx中端口无权限的问题解决》当Nginx日志报错bind()to80failed(13:Permissiondenied)时,这通常是由于权限不足导致Nginx无法绑定到80端口,下面就来... 目录一、问题原因分析二、解决方案1. 以 root 权限运行 Nginx(不推荐)2. 为 Nginx

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例