所以我正在使用PHP来尝试执行我在同一目录中的脚本。该脚本在本地运行正常,并且http-data用户的权限设置为能够执行此PHP块中引用的脚本
$cmd = system('th neural_style.lua -style_image'.' ~/'.$style.'.jpg '.'-content_image '.$content_image.' -gpu 0 -backend cudnn -save_iter 1 -cudnn_autotune -output_image /var/www/html/processed/'.$email.'/out.png 2>&1', $retval);
echo '
</pre>
<hr />Recent output: ' . $last_line . '
<hr />Return value: ' . $retval;
根据我的理解,脚本应该使用系统方法执行正常,我知道变量看起来很乱,尽管这是我从PHP得到的错误:
sh:th:命令未找到
我将我的默认解释器设置为bash,而不是破坏思维,这可能是一个问题,没有骰子。火炬在同一个目录中,就像我说的那样,我的登录运行正常。
我知道我试图以某种方式做的事情就像亵渎神明一样,如果有一个更好的方法来运行一个大约需要花费8分钟来完成的脚本,使用网络上的一些用户输入,我想知道。这就是我自然而然的事情。我希望在流程完成后通过电子邮件通知用户,所以任何执行方式都是花花公子。
编辑:提及&#34; http-data&#34;应该说&#34; www-data&#34;。
答案 0 :(得分:0)
将http-data
用户的默认shell更改为bash
或dash
。它目前正在使用sh
。
检查您的$PATH
变量在PHP环境中的位置。