Loading
0

解决Nginx报error while loading shared libraries: libjemalloc.so.2: cannot open

技术小学生微信公众号
腾讯云服务器大促销。
华为服务器

前言:宝塔面板安装好Nginx后启动报错:Starting nginx... /www/server/nginx/sbin/nginx: error while loading shared libraries: libjemalloc.so.2: cannot open shared object file: No such file or directory
 failed
,折腾了一下,终于解决了这个问题。或者报错:找不到libluajit-5.1.so.2。
原因:报错如图,字面意思看是找不到 “libjemalloc.so.2”和libluajit-5.1.so.2这个库文件。
说明:如果是缺少其他库文件,也可以参考这个方法处理。
如果有重要业务运行,建议做好快照,以免异常可以还原。

解决方法:亲测
经过测试,有两个解决方法。
方法一:(如果能搜索到文件,建议使用方法1)
1、执行如下命令查看下nginx启动时调用的库文件。

ldd /www/server/nginx/sbin/nginx

说明:若您的nginx不是宝塔安装,将上面路径更换为您自己的宝塔启动路径。
执行后显示如下:

[root@blog.tag.gg~]# ldd /www/server/nginx/sbin/nginx
        linux-vdso.so.1 =>  (0x00007ffd36fa7000)
        libjemalloc.so.2 => not found
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fdacbecc000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fdacbcb0000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fdacba79000)
        libluajit-5.1.so.2 => not found
        libm.so.6 => /lib64/libm.so.6 (0x00007fdacb777000)
        libz.so.1 => /lib64/libz.so.1 (0x00007fdacb561000)
        libxml2.so.2 => /lib64/libxml2.so.2 (0x00007fdacb1f7000)
        libxslt.so.1 => /lib64/libxslt.so.1 (0x00007fdacafb8000)
        libexslt.so.0 => /lib64/libexslt.so.0 (0x00007fdacada3000)
        libgd.so.2 => /lib64/libgd.so.2 (0x00007fdacab5c000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fdaca78e000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fdacc0d0000)
        libfreebl3.so => /lib64/libfreebl3.so (0x00007fdaca58b000)
        liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fdaca365000)
        libgcrypt.so.11 => /lib64/libgcrypt.so.11 (0x00007fdaca0e4000)
        libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007fdac9edf000)
        libXpm.so.4 => /lib64/libXpm.so.4 (0x00007fdac9ccd000)
        libX11.so.6 => /lib64/libX11.so.6 (0x00007fdac998f000)
        libjpeg.so.62 => /lib64/libjpeg.so.62 (0x00007fdac973a000)
        libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007fdac94f8000)
        libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007fdac9239000)
        libpng15.so.15 => /lib64/libpng15.so.15 (0x00007fdac900e000)
        libxcb.so.1 => /lib64/libxcb.so.1 (0x00007fdac8de6000)
        libexpat.so.1 => /lib64/libexpat.so.1 (0x00007fdac8bbb000)
        libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fdac89b6000)
        libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fdac87a6000)
        libXau.so.6 => /lib64/libXau.so.6 (0x00007fdac85a2000)

执行结果看提示“libjemalloc.so.2”和 “libluajit-5.1.so.2”找不到。
2、执行如下命令搜索一下文件是否存在。

find / -name libjemalloc.so.2
find / -name libluajit-5.1.so.2

执行后显示如下,系统中是存在这个文件的。

[root@blog.tag.gg~]# find / -name libjemalloc.so.2
/usr/local/lib/libjemalloc.so.2
[root@blog.tag.gg~]# find / -name libluajit-5.1.so.2
/usr/local/lib64/libluajit-5.1.so.2
/usr/local/lib/libluajit-5.1.so.2
[root@blog.tag.gg~]#

3、将“libjemalloc.so.2”和 “libluajit-5.1.so.2”文件复制到 /lib64/即可。

[root@blog.tag.gg~]# cp /usr/local/lib/libjemalloc.so.2 /lib64/
[root@blog.tag.gg~]# cp /usr/local/lib64/libluajit-5.1.so.2 /lib64/

文件复制到 /lib64/后再重启nginx即可解决。
方法二:
方法1无法解决时再考虑这个方法。
如果按照方法一无法搜索到两个文件则可直接执行如下命令安装库文件即可。

yum install -y jemalloc

执行后再启动即可正常。





 
技术小学生微信公众号
华为服务器
腾讯云服务器大促销。

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:https://blog.tag.gg/showinfo-7-36284-0.html
亲爱的:若该文章解决了您的问题,可否收藏+评论+分享呢?
上一篇:Linux下通过Nginx访问日志统计网站访问IP/PV/URL/UV量等
下一篇:解决:多docker站点部署SSL证书HTTPS访问方法