无法在PHP shell_exec()命令中运行inkscape

时间:2016-07-07 18:27:58

标签: php linux shell-exec inkscape

我有一个design tool extension用于我正在处理的网站上。设计工具使用inkscape命令行导出图像。有一个php接口可以使用最终调用shell_exec($inkscapeCmd)的命令行操作。在注意到图像文件没有被导出之后,我创建了一些测试来尝试和调试。我将执行行更改为shell_exec($inkscapeCmd . ' 2>&1')以查看错误消息:

sh: inkscape: command not found

...这是奇怪的,因为它确实安装和访问。我在测试页面上添加了对用户的检查,以确保有权访问inkscape的用户执行命令:

$processUser = posix_getpwuid(posix_geteuid()); echo 'user: ' . $processUser['name'];

然后我进入服务器以确认我可以运行与该用户相同的命令,并且能够毫无问题地运行它们(这也确认了inkscape在PATH中)。我可以毫无问题地从PHP运行其他基本shell命令,如下所示:

echo shell_exec('ls');

但现在我不知所措;我不知道还有什么可以检查,以确定为什么我没有找到'命令找不到'错误。任何方向都会有所帮助。

服务器(相当陈旧,我知道):

  • CentOS 6.7
  • PHP 5.3.3
  • Inkscape v0.47

1 个答案:

答案 0 :(得分:1)

该进程在其路径中没有inkscape的位置。

您必须提供可执行文件的完整路径。

实施例

的/ usr /斌/ Inkscape中

在命令行中输入'whereis inkscape'来查找位置。