php - 在php shell_execute中执行qpdf

标签 php linux file-permissions shell-exec opensuse

我已经在我的 OpenSuse 13.2 操作系统中安装了 Lampp-x64-5.6.3。我构建了一个程序,它需要执行我从 OpenSuse Repo 本身安装的 qpdf

好吧,当我运行命令(如下所示)时,我没有得到任何响应,也没有任何效果,但我能够在 /usr/bin/ 目录中执行其他二进制文件。

   $execQuery =  "/usr/bin/qpdf --decrypt --stream-data=uncompress --force-version=1.4 ".escapeshellarg('/opt/lampp/htdocs/test/test.pdf')." ". escapeshellarg('/opt/lampp/htdocs/test/temptest.pdf');
   shell_exec($execQuery);
#OR
   $execQuery =  "/usr/bin/qpdf '/opt/lampp/htdocs/test/test.pdf' '/opt/lampp/htdocs/test/temptest.pdf'";
   shell_exec($execQuery);

PHP safe_mode 已关闭,shell_exec、exec、系统等已启用。我仍然无法运行这个特定的二进制文件 (/usr/bin/qpdf)。

当我运行命令 echols -ldireven skype 时,我得到了输出在 php shell_execute 函数中。 该文件的权限是:-rwxr-xr-x 1 root root 85248 Jun 18 10:31/usr/bin/qpdf

但是我可以通过操作系统的终端执行qpdf命令。它完美地创建了文件。

目录/opt/lampp/htdocs/test/对qpdf和apache/lampp都是可写的

我几乎尝试了各种论坛中提到的所有方法,但仍然无法让这个可执行文件运行该文件。

提前致谢。

更新:

按照建议尝试这个:

$command =  "/usr/bin/qpdf --decrypt --stream-data=uncompress --force-version=1.4 ".escapeshellarg('/opt/lampp/htdocs/test/test.pdf')." ". escapeshellarg('/opt/lampp/htdocs/test/temptest.pdf');
shell_exec($command. " > /opt/lampp/htdocs/debug.log 2>&1");

记录错误!

......    
/opt/lampp/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found
...... 

解决方案:

我只需要删除 /usr/lib/libstdc++.so.6 文件或重命名它即可。

在终端运行:

sudo mv /usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so.6___

最佳答案

我只需要删除/usr/lib/libstdc++.so.6 文件或重命名它即可。

在终端运行:

sudo mv/usr/lib/libstdc++.so.6/usr/lib/libstdc++.so.6___

关于php - 在php shell_execute中执行qpdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31360737/

相关文章:

php - curl "Peer' s 公钥无效。”无法加载客户端 key : -8178 (SEC_ERROR_BAD_KEY)

php - 从数组查询数据库的有效方法

node.js - 启动 mongodb 时出现 TransientTransactionError

apache - 如何获取 Shell 脚本来更改文件权限?

PHP:格式化和排序来自 MySQL 数据库的日期

php - 我是否需要安装 ffmpeg-php 才能使用 ffmpeg?

php - Debian:使用 bash 找出 CPU 使用率

linux - tr -ct 有什么作用?

linux - 使用 ./studio.sh 或任何 bash 脚本运行 android studio 时权限被拒绝

drupal - 安装 drupal 模块时文件系统权限错误