AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 978854
Accepted
Philip Rego
Philip Rego
Asked: 2019-08-12 22:05:21 +0800 CST2019-08-12 22:05:21 +0800 CST 2019-08-12 22:05:21 +0800 CST

如何修复 catalina.out 中的错误“libjli.so:无法打开共享对象文件:没有这样的文件或目录”

  • 772

systemctl restart tomcat在我的$CATALINA_HOME/logs/catalina.out日志文件 中运行时出现此错误: https ://pastebin.com/Cpfs9xCk

所以我在网上关注了这篇文章: https ://confluence.atlassian.com/confkb/permission-denied-error-when-binding-a-port-290750651.html

  1. 如果使用 Linux 2.6.24 或更高版本,您可以在 java 可执行文件上设置文件功能,以授予提升权限以仅允许打开特权端口,而不允许打开其他超级用户权限:

setcap cap_net_bind_service+ep /path/to/bin/java 设置后你可能会在像这样启动 Java 时注意到错误,例如:

$ java -version /path/to/bin/java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory 这意味着库是从动态路径导入的,而不是在受信任的 ld.so 路径。有关详细信息,请参阅 http://bugs.sun.com/view_bug.do?bug_id=7157699。要解决此问题,您需要找到该库,并将其路径添加到 ld.so 配置。请注意,下面是一个示例,这可能因 Linux 发行版而异。将 JAVA_HOME 替换为正确的位置:

$ find JAVA_HOME -name 'libjli.so' JAVA_HOME/lib/amd64/jli/libjli.so
echo "JAVA_HOME/lib/amd64/jli" > /etc/ld.so.conf.d/java-libjli.conf ldconfig - v 设置完这一切后,您需要确保 Confluence 仅使用直接二进制路径启动 java,而不是通过符号链接,否则将无法获取该功能。

所以我运行了这个命令: setcap cap_net_bind_service+ep /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64

我得到了它所说的我可能会得到的东西:

 $CATALINA_HOME/logs/catalina.out 
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/bin/java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory

我按照他们所说的进行了修复,但仍然无法正常工作,并且仍然出现上述错误:

$ find $JAVA_HOME -name 'libjli.so'
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/lib/amd64/jli/libjli.so
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/lib/amd64/jli/libjli.so

出于某种原因,我有其中两个。我用路径创建了这个文件,但我仍然收到错误并且我的 tomcat 没有启动。

$ cat /etc/ld.so.conf.d/java-libjli.conf
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/lib/amd64/jli
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/lib/amd64/jli
tomcat
  • 1 1 个回答
  • 2530 Views

1 个回答

  • Voted
  1. Best Answer
    djdomi
    2019-08-26T21:33:29+08:002019-08-26T21:33:29+08:00

    到目前为止,我为 nginx 部分添加了完整的方法,因为 apache-tomcat 已通过重新安装解决

    mkdir /var/cache/nginx/cache
    chown nginx:nginx /var/cache/nginx/cache


    现在编辑 http 部分下方的 nginx.conf

    ###New cache settings as default
    proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=hd_cache:10m max_size=10g inactive=2d use_temp_path=off;
    proxy_cache_methods GET HEAD POST;
    proxy_cache_valid 200 302 3d;
    proxy_cache_valid 404      1m;
    

    编辑 /etc/nginx/sites-avaible/yoursite.com

    #http to https redirect
    server {
            server_name yoursite.com *.yoursite.com;
            listen 80;
            return 301 https://$host$request_uri;
    }
    
    #https server
    server {
            proxy_read_timeout 3600;
            listen 443 ssl http2;
            server_name yoursite.com *.yoursite.com;
    
    #a special location in case don't cache this file can be deleted
    location updater/serversettings.xml {
              expires -1;
              add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
            }
    
                    #The root/rest will be redirected
                    location / {
                            proxy_cache             hd_cache;
                            proxy_set_header        X-Cache-Status $upstream_cache_status;
                            proxy_cache_valid       200 1w;
                            proxy_pass              https://10.10.200.4;
                            proxy_set_header        Host $http_host;
                            proxy_buffers           16 8m;
                            proxy_buffer_size       2m;
                            gzip on;
                            gzip_vary          on;
                            gzip_comp_level    9;
                            gzip_proxied       any;
    }
        #SSL Cert section, as we require ssl, using certbot LetsEncrypt
        ssl_certificate /etc/letsencrypt/live/yoursite.com-0001/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/yoursite.com-0001/privkey.pem; # managed by Certbot
    }
    

    现在启用此站点。

    ln -s /etc/nginx/sites-avaible/yoursite.com /etc/nginx/sites-enabled/yoursite.com

    并运行

    服务 Nginx 重新加载

    此设置适用于 WordPress 网站,我遇到的页面速度计数器为 95+

    • 0

相关问题

  • jvm性能调优技巧/资源?

  • 使 Jakarta 连接器与 IIS 一起工作时出现问题

  • 如何禁用tomcat缓存?我遇到了奇怪的静态文件问题

  • Hudson 无法在 tomcat5 中启动

  • Tomcat 6 HTTP 日志滚动和清除

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve