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

Unable to run inkscape in PHP shell_exec() command

我有一个 design tool extension that is used on a website I'm working on. The design tool uses 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'];

然后我 ssh 进入服务器以确认我可以 运行 与该用户相同的命令,并且能够 运行 他们没有任何问题(这也证实了 inkscape 在路径)。我可以从 PHP 运行 其他基本的 shell 命令没有问题,像这样:

echo shell_exec('ls');

但现在我不知所措;我不确定还需要检查什么来确定我收到 'command not found' 错误的原因。任何方向都会有所帮助。

服务器(据我所知相当旧):

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

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

例子

/usr/bin/inkscape

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