解决Nginx启动报错“nginx: [emerg] unknown directive “ngx_fastdfs_module“ in /xxx/nginx/conf/nginx.conf:43“

这篇具有很好参考价值的文章主要介绍了解决Nginx启动报错“nginx: [emerg] unknown directive “ngx_fastdfs_module“ in /xxx/nginx/conf/nginx.conf:43“。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

centos7操作系统,nginx被人安装过多次,重启服务器,发现nignx未设置开机自启,启动报错nginx: [emerg] unknown directive “ngx_fastdfs_module” in /usr/local/nginx/conf/nginx.conf:43

排查

1、尝试启动,查看报错日志

sudo systemctl start nginx

上述命令如果报nginx.service找不到:Failed to start nginx.service: Unit not found.,则进入nginx的安装目录。不知道自己的nginx服务可以使用命令:nginx -V查看版本号信息所显示的prefix属性,这里我的nginx服务是/opt/nginx。然后进入该安装目录下的sbin目录,重载或者重启nginx服务

nginx -V

cd /opt/nginx/sbin/

./nginx -s reload
或者
./nginx -s restart

解决Nginx启动报错“nginx: [emerg] unknown directive “ngx_fastdfs_module“ in /xxx/nginx/conf/nginx.conf:43“
可以看到这里我报错了"nginx: [emerg] unknown directive “ngx_fastdfs_module” in /usr/local/nginx/conf/nginx.conf:43"

原因

这个错误提示意味着在Nginx配置文件中包含了一个未知的指令"ngx_fastdfs_module",导致Nginx无法启动。根据报错提示找到配置文件(这里我的配置文件位置是:/usr/local/nginx/conf/nginx.conf)中发现启动nginx服务的时候确实去加载fastdfs的ngx_fastdfs_module了
解决Nginx启动报错“nginx: [emerg] unknown directive “ngx_fastdfs_module“ in /xxx/nginx/conf/nginx.conf:43“

解决

1、确认是否安装了ngx_fastdfs_module模块

nginx -V

解决Nginx启动报错“nginx: [emerg] unknown directive “ngx_fastdfs_module“ in /xxx/nginx/conf/nginx.conf:43“
如果ngx_fastdfs_module没有在输出的信息中列出,则需要安装该模块,走以下步骤。
:上面nginx -V排查的时候其实已经看到这里我的输出信息确实列出ngx_fastdfs_module了,但是跑的是/usr/bin/nginx服务。说明跑错服务了,运行/usr/bin/nginx服务就行。

2、编译nginx时将ngx_http_fastdfs_module包含在configure命令中

ngx_http_fastdfs_module是一个nginx扩展模块,用于实现FastDFS的分布式文件存储系统的HTTP协议访问。可以去官方下载:https://github.com/happyfish100/fastdfs-nginx-module/tags,进入Nginx源代码目录,运行以下命令进行configure配置(注:/opt/soft/fastdfs-nginx-module是我的fastdfs-nginx-module安装路径):

cd /opt/soft/nginx-1.14.2
./configure --add-module=/opt/soft/fastdfs-nginx-module/src

由于nginx -V已经知道nginx的版本是1.14.2,所以上述/opt/soft/nginx-1.14.2是我排查这台服务器所查找的nginx源代码目录,全局搜索命令(命令拓展):

sudo find / -type d -name "nginx-1.14.2"

解决Nginx启动报错“nginx: [emerg] unknown directive “ngx_fastdfs_module“ in /xxx/nginx/conf/nginx.conf:43“

3、重新加载或启动Nginx服务

sudo systemctl restart nginx

或者

cd /path/nginx/sbin/
./nginx -s reload
或者
./nginx -s restart

/path/nginx/sbin/替换成你的nginx的安装路径就可以了,使用以下命令查看是否启动了:

ps -ef|grep nginx

总结

捣鼓一圈,我算是发现了,nginx被前人安装好几遍,目录眼花缭乱。nginx源代码在/opt/soft/目录下,nginx服务安装在/usr/bin/nginx,prefix属性所指向的nginx目录/opt/nginx是误导,前人不清楚重装之后改了指向,其实不影响服务的正常启动文章来源地址https://www.toymoban.com/news/detail-471721.html

到了这里,关于解决Nginx启动报错“nginx: [emerg] unknown directive “ngx_fastdfs_module“ in /xxx/nginx/conf/nginx.conf:43“的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决nginx: [emerg] unknown directive “stream“ in /etc/nginx/nginx.conf

    修改了 nginx.conf 的配置,增加了 stream 相关的配置后,重启Nginx,报错 看错误提示是不能识别stream指令,但是执行了 nginx -V 后,发现输出内容有相关的stream模块,这就使我很困惑,为啥nginx识别不到呢? 经过查资料和尝试,发现安装 nginx-mod-stream 这个库可以解决这个问题:

    2024年02月07日
    浏览(43)
  • 【异常】Nginx报错[emerg]: unknown directive “user“ in /usr/local/nginx/conf/nginx.conf:xx报错处理

    如果出现 nginx静态资源文件无法访问,403 forbidden错误 检查一下nginx.conf 文件的上面有一个 user nobody 是不是打开的,并且改成 user root 出现这种情况 一般是修改配置文件 nginx.conf 造成的 如果你修改文件后出现 那基本上就是这个原因 启动不了 重新打开 改为UTF-8 无BOM编码 操作

    2024年02月12日
    浏览(43)
  • 解决nginx: [emerg] unknown directive “stream“ in /etc/nginx/nginx.conf问题

    增加配置内容如下: 1.nginx -V确保nginx安装了–with -stream如果没有,重新用yum install nginx -y安装 2. 安装 yum -y install epel-release 3. yum -y install nginx-all-modules.noarch 4.vi nginx.conf顶部加一行 load_module /usr/lib64/nginx/modules/ngx_stream_module.so;

    2023年04月08日
    浏览(44)
  • nginx: [emerg] unknown directive “stream“ in /etc/nginx/nginx.conf问题解决方案

    nginx: [emerg] unknown directive “stream“ in /etc/nginx/nginx.conf问题解决方案 在进行kubernetes 集群配置安装时出现如下问题。 错误如下: 安装nginx stream模块,或者安装全部模块。 yum -y install nginx-all-modules.noarch 再次尝试nginx -t 完美解决。

    2024年02月05日
    浏览(44)
  • 关于刷新nginx配置报nginx: [emerg] unknown directive错误的问题

    朋友在windows服务器用记事本编辑nginx配置文件后,刷新nginx配置,nginx返回以下错误: unknown directive 是未知指令的意思,后面带着未知指令的内容是\\\"锘?user\\\"。由此判断,是nginx配置文件编码不正确的原因。 事实上,windows的记事本编辑文本后,会以ASCII码编码进行保存。这与

    2024年02月21日
    浏览(43)
  • docker 启动 nginx 。 报错nginx: [emerg] open() “/etc/nginx/nginx.conf“ failed (2: No such file or direct

    本人使用docker desktop在windows上部署nginx遇到此问题 挂载了三个目录: docker cp nginx:/usr/share/nginx/html D:dockernginxhtml docker cp nginx:/var/log/nginx D:dockernginxlogs docker cp nginx:/etc/nginx D:dockernginxconf  docker部署nginx命令: 执行docker run命令后容器报错: nginx: [emerg] open() “/etc/nginx/nginx.

    2024年02月03日
    浏览(48)
  • nginx启动报错:unknown directive “ “ in D:\nginx\conf\nginx.conf:3

    用Nginx部署前端项目,用记事本修改了nginxconfnginx.conf 文件的相关配置并保存,启动时报错:unknown directive \\\" \\\" in D:nginxconfnginx.conf:3 原因:是因为编码问题。被记事本编辑过的 conf文件,保存成了含BOM编码的文件。 注:记事本编辑UTF-8都会自动加BOM头 解决方法:使用其他编辑

    2024年02月04日
    浏览(49)
  • 解决:nginx: [emerg] “upstream“ directive is not allowed here in /usr/local/nginx/conf/nginx.conf:2

    1.nginx集群报错“upstream”directive is not allow here 错误如下图。  2.启动nginx报错,这里的原因是改了配置文件upstream存的的位置不对所以导致报错的,  3.把upstream 放入http里面保存重启nginx就解决了 如图成功解决报错,启动成功了  

    2024年02月15日
    浏览(47)
  • 成功解决 nginx: [emerg] invalid number of arguments in “root“ directive in 问题

    目录 问题原因 解决方法 看这里 如下图,启动nginx时报错  , 很明显是E盘下的Program Files文件夹中间 存在空格 ,导致识别错误。  问题原因不唯一,可从下中检查下自己的问题 句尾忘记加 分号 路径中文件名使用了 中文 路径中有 空格 斜杠错误,要用  /  而不是 模板 路

    2024年02月12日
    浏览(52)
  • nginx: [emerg] bind() to 0.0.0.0:18888 failed (98: Unknown error)问题解决办法

    周末断网,今天来了之后,nginx出现这个问题,本站基本搜索的都是端口被占用问题,我试着杀掉所有占用端口的进程,解决办法 1.killall -9 nginx 2.然后启动(./nginx)nginx(PS:不要./nginx -s reload) 3.如果启动失败失败,重新指定配置文件的路径 ./nginx -c /home/portal/nginx/conf/nginx.con

    2024年02月08日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包