Запуск скрипта блендера на хостинге Linux

1

В настоящее время я работаю над веб-приложением, которое выплевывает файл.stl в блендере. Я использовал php, и я вызываю скрипт в php с помощью exec(). Посмотрите на код ниже. Я нашел код из Php: запуск скрипта python с использованием блендера из проекта php с использованием команд cmd

$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-хостинг), Uploaded Blender (Linux - https://www.blender.org/download/) изменил пути и ничего не произошло. Он даже не выводит никаких ошибок. Есть ли отдельный код командной строки для Linux? Я не привык к использованию Linux, и я боролся с этим последние 3 дня.

Любая помощь приветствуется.

Теги:
blender

1 ответ

0
Лучший ответ

Я могу представить себе две возможности. Первый - это имена путей, на linux нет букв дисков, путь должен быть чем-то вроде /home/aniket/tests/blendtest

Второй относится к запуску программы, я ожидал бы ошибку, но вам, возможно, придется искать в файлах журналов, чтобы найти ее или увеличить многословие php. Первый момент заключается в том, что для файла требуются разрешения, которые должны быть исполняемыми, это будет включать chmod +x blender или, возможно, использовать ваше программное обеспечение ftp для его установки, оно часто представляется как X в строке разрешений, такой как RWXRWXRWX. Второй момент - это то, как команды найдены в системе * 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>";

On * nix systems ./ представляет текущий каталог, поэтому вам также может повезти использовать

$output = exec("cd $blender_path && ./blender -b -P $script", $data);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню