从PhP执行时,PhantomJS无法找到GLIBC

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从PhP执行时,PhantomJS无法找到GLIBC相关的知识,希望对你有一定的参考价值。

我正在运行Ubuntu 16.04 LTS桌面和lampp堆栈(apache2,php7.0,mysql)。我试图从PhP执行phantomjs -v并且它说它找不到`GLIBCXX_3.4.9',但是当我通过控制台执行时它运行并输出版本(2.1.1)就好了。

我排除的因素是:

Permissions

信息:

PHP: Version 7.1.10
OS: 16.04.1-Ubuntu

错误:

/phantomjs-2.1.1-linux-x86_64/bin/phantomjs: /opt/lampp/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by phantomjs-2.1.1-linux-x86_64/bin/phantomjs)

PhP执行官:

$cmd = "/phantomjs-2.1.1-linux-x86_64/bin/phantomjs -v";
$my_output = shell_exec($cmd.' 2>&1; echo $?');
echo $my_output."<br><br>".get_current_user()."<br><br>".$cmd;

编辑:这不是libstdc ++错误。正如我所说,我可以在控制台中运行它,只有当我尝试在PhP中运行它时才会出现错误。

libstdc++6 is already the newest version (5.4.0-6ubuntu1~16.04.5).

contempt@contempt-MacBookPro:/opt/lampp/lib$ strings libstdc++.so.6 | grep GLIB
    GLIBCXX_3.4
    GLIBCXX_3.4.1
    GLIBCXX_3.4.2
    GLIBCXX_3.4.3
    GLIBCXX_3.4.4
    GLIBCXX_3.4.5
    GLIBCXX_3.4.6
    GLIBCXX_3.4.7
    GLIBCXX_3.4.8
    GLIBC_2.3
    GLIBC_2.4
    GLIBC_2.2.5
答案

显然,我发布的问题比我应该做的研究少了一两分钟。 shell_exec命令试图使用/ lib / from / opt / lampp / while控制台在Ubuntu中使用/ usr / lib /从/ opt / lampp中删除libstdc ++并从我的用户文件中复制它修复了我的问题。

contempt@contempt-MacBookPro:/opt/lampp/lib$ cp -a /usr/lib/x86_64-linux-gnu/libstdc++.so.6 .

以上是关于从PhP执行时,PhantomJS无法找到GLIBC的主要内容,如果未能解决你的问题,请参考以下文章

无法让phantomjs在aws lambda上工作

从 php 启动 phantomjs 服务器并等待它的响应

通过selenium和phantomjs从动态网址下载文件

如何在 windows 下使用 PHP 执行 phantomjs

Python:Phantomjs 找不到 chrome webdriver 工作正常的元素

Glib C:程序无法识别 GLIB 库