我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

解决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 -Vcd /opt/nginx/sbin/./nginx -s reload或者./nginx -s restart

在这里插入图片描述
可以看到这里我报错了"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了
在这里插入图片描述

解决

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

nginx -V

在这里插入图片描述
如果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/class="lazy" data-src

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

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

在这里插入图片描述

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://blog.csdn.net/Da_zhenzai/article/details/130392344

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

目录