我在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,system等已启用。我仍然无法运行这个特定的二进制文件(/ usr / bin / qpdf)。
当我运行命令 echo 或 ls -l </ em>或 dir 或甚至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___
答案 0 :(得分:0)
我只需要删除/usr/lib/libstdc++.so.6文件或重命名。
终端运行:
sudo mv /usr/lib/libstdc++.so.6 / usr / lib / libstdc ++。so.6 ___