问题描述
我目前正在使用网络应用程序,该应用程序会在Blender中吐出.stl文件。 我已经使用过php,并且正在使用exec()在php中调用脚本。 请查看下面的代码。 我从找到了代码
$script = "C:\\xampp\\htdocs\\test\\test.py";
$blender_path = "C:\Program Files\Blender Foundation\Blender";
$output = exec("cd $blender_path && blender -b -P $script", $data);
echo "<pre>";
print_r($data);
echo "</pre>";
所有在本地都可以正常工作。 我将内容上传到我的网站(Linux托管),上传了Blender(Linux- )更改了路径,但没有任何反应。 它甚至不输出任何错误。 Linux是否有单独的命令行代码? 我不习惯使用Linux,并且在过去三天里一直在为此苦苦挣扎。
任何帮助表示赞赏。
1楼
我可以想到两种可能性。
第一个是路径名,在Linux上没有驱动器号,路径应类似于/home/aniket/tests/blendtest
第二个问题与运行程序有关,我可能会遇到错误,但是您可能必须查看日志文件才能找到它或增加php的详细程度。
第一点是文件需要将权限设置为可执行文件,这将涉及chmod +x blender
或可能使用ftp软件进行设置,它通常在权限字符串(如RWXRWXRWX
表示为X
第二点是在* nix系统上找到命令的方式,有一个PATH环境变量列出了要查找命令的目录,默认情况下当前目录不在该列表中,而且我不希望托管公司这样做添加它。
$script = "/home/aniket/test1/test.py";
$blendexe = "/home/aniket/blender2.76/blender";
$output = exec("$blendexe -b -P $script", $data);
echo "<pre>";
print_r($data);
echo "</pre>";
在* nix系统上,. ./
代表当前目录,因此您可能还可以使用
$output = exec("cd $blender_path && ./blender -b -P $script", $data);