在控制台和 exec() 中执行相同命令时得到不同的结果
Get different result when do same command in console and exec()
当我在控制台 /home/..myserver_path../.local/bin/gocr -i '/home/..myserver_path../runtime//tmp/135_45_ca4b78115a191517c9e356d34deb000c.jpg' 2>&1
中执行时,它工作正常。
但是当我在 php 脚本中执行时
exec("/home/..myserver_path../.local/bin/gocr -i '/home/..myserver_path../runtime//tmp/135_45_ca4b78115a191517c9e356d34deb000c.jpg' 2>&1", $out);
我收到错误:
sh: 1: djpeg: 未找到
错误pnm.c L328:意外的 EOF
这两种方式有什么区别?
您的 PHP 代码在语法上无效。您需要转义命令中使用的单引号。
编辑:语法更正后,我猜测 djpeg 在 PHP 的路径中缺失,但在 shell 的路径中。当你 运行 which djpeg
从你的 shell 得到什么?
编辑:根据下面的讨论,情况似乎是这样。要解决此问题,请尝试此 PHP 代码:
exec("export PATH=$PATH:/home/..myserver_path../.local/bin/; /home/..myserver_path../.local/bin/gocr -i '/home/..myserver_path../runtime//tmp/135_45_ca4b78115a191517c9e356d34deb000c.jpg' 2>&1", $out);
当我在控制台 /home/..myserver_path../.local/bin/gocr -i '/home/..myserver_path../runtime//tmp/135_45_ca4b78115a191517c9e356d34deb000c.jpg' 2>&1
中执行时,它工作正常。
但是当我在 php 脚本中执行时
exec("/home/..myserver_path../.local/bin/gocr -i '/home/..myserver_path../runtime//tmp/135_45_ca4b78115a191517c9e356d34deb000c.jpg' 2>&1", $out);
我收到错误:
sh: 1: djpeg: 未找到
错误pnm.c L328:意外的 EOF
这两种方式有什么区别?
您的 PHP 代码在语法上无效。您需要转义命令中使用的单引号。
编辑:语法更正后,我猜测 djpeg 在 PHP 的路径中缺失,但在 shell 的路径中。当你 运行 which djpeg
从你的 shell 得到什么?
编辑:根据下面的讨论,情况似乎是这样。要解决此问题,请尝试此 PHP 代码:
exec("export PATH=$PATH:/home/..myserver_path../.local/bin/; /home/..myserver_path../.local/bin/gocr -i '/home/..myserver_path../runtime//tmp/135_45_ca4b78115a191517c9e356d34deb000c.jpg' 2>&1", $out);