PHP system()引发命令未找到错误

Ste*_*eve 2 php shell command-line tesseract

试图运行这个脚本:

<?php

   $src  = "./tmp/image1.jpg";
   $dest = "./tmp/image1";
   $out  = "";

   // ob_start();
   $out  = system("tesseract $src $dest");
   // ob_end_clean();

   die($out);
?>
Run Code Online (Sandbox Code Playgroud)

它显示一个空白脚本,并显示错误日志:sh:tesseract:command not found

这个命令工作正常嘘虽然......

知道为什么吗?

Joh*_*ker 8

您需要在磁盘上提供tesseract命令的完整路径(通常/usr/bin/tesseract,但这可能会因您的特定平台/分发而异),因为PHP执行命令的上下文将不会设置相关的默认路径起来.

要找出命令所在的位置,只需which tesseract通过shell使用即可.(只要它在没有使用完整路径的情况下实际可用.)