我有一个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');
但现在我不知所措;我不知道还有什么可以检查,以确定为什么我没有找到'命令找不到'错误。任何方向都会有所帮助。
服务器(相当陈旧,我知道):
答案 0 :(得分:1)
该进程在其路径中没有inkscape的位置。
您必须提供可执行文件的完整路径。
实施例
的/ usr /斌/ Inkscape中
在命令行中输入'whereis inkscape'来查找位置。