问题描述:
在 Windows 下,用 PHP 用 exec()函数去执行命令行工具时,结果正常,但发布到 Linux 服务器,报 127 错误。
代码如下:
<?php $cmd = 'java -jar /alidata/www/test.dd.com/facecmd-release/facecmd.jar -act getFaceValue -arg1 /alidata/www/test.dd.com/upload/20200211_355/5e424d99c37c9.png'; $output = null; $return_var = null; exec($cmd, $output, $return_var); print_r($return_var); print_r($output);
结果:
$return_var 等于 127
解决方案:
给了执行权限(直接为 777),还是报 127 错误,最后 补全命令行中的 java 路径地址,改为 完整路径,问题解决,参考代码如下:
<?php $cmd = '/alidata/server/java/jdk_1.8/bin/java -jar /alidata/www/test.dd.com/facecmd-release/facecmd.jar -act getFaceValue -arg1 /alidata/www/test.dd.com/upload/20200211_355/5e424d99c37c9.png';