【问题标题】:wkhtmltopdf on apache server / linux (Fedora 34) generation errorwkhtmltopdf on apache server / linux (Fedora 34) 生成错误
【发布时间】:2021-04-30 13:28:38
【问题描述】:

当从普通终端使用 wkhtmltopdf 时一切正常,但是当我从 apache2 localhost 服务器使用它时,它会生成以下错误:

/usr/bin/wkhtmltopdf: /opt/lampp/lib/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /usr/bin/wkhtmltopdf) /usr/bin/wkhtmltopdf: /opt/lampp/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /lib64/libwkhtmltox.so.0) /usr/bin/wkhtmltopdf

所以我知道 libstdc++ 库和一些混乱的库版本存在一些问题,但我不知道如何解决这个问题。谁能帮帮我?

我已经尝试按照此处的建议将其添加到我的 /etc/sudoers 文件中: wkhtmltopdf gives error when executed with apache user

但不幸的是,这没有帮助。

更新:我很好奇是否安装了正确版本的库,所以我运行了这个命令:

strings /usr/lib64/libstdc++.so.6 | grep CXXABI

这给了我这个输出:

CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_1.3.8
CXXABI_1.3.9
CXXABI_1.3.10
CXXABI_1.3.11
CXXABI_1.3.12
CXXABI_1.3.13
CXXABI_TM_1
CXXABI_FLOAT128

所以似乎安装了所需的版本

这是我使用的 PHP 代码:

$cmd = '/usr/bin/wkhtmltopdf www.google.de google.pdf'; 

$ret = shell_exec($cmd.' 2>&1'); 

var_dump($ret); 

更新:我试图在 /opt/lampp/lib/ 中搜索 libstdc++.so.6 文件,发现这里有一个 libstdc++.so.6 和 libstdc++.so.6.0.19 文件,我想我必须将其更新到 6.0.24,有人知道该怎么做吗? (我试图将文件复制到这个lib文件夹但没有成功)

【问题讨论】:

  • 您可能希望包含用于调用 wkhtmltopdf 可执行文件的 PHP 代码的代码 sn-p。
  • @Sil 将包含它

标签: php linux apache fedora wkhtmltopdf


【解决方案1】:

我找到了一个适合我的解决方案(我不知道它为什么有效,因为当我从终端运行 wkhtmltopdf 时通常不需要超级用户权限,但是在命令前面添加 sudo 对我有用)

$cmd = 'sudo /usr/bin/wkhtmltopdf www.google.de google.pdf'; 

$ret = shell_exec($cmd.' 2>&1'); 

var_dump($ret); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    • 2016-11-28
    相关资源
    最近更新 更多