Запуск скрипта blender на хостинге Linux

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

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

1

Решение

Я могу думать о двух возможностях. Первый — это имена путей, в 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>";

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

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

Другие решения

Других решений пока нет …