Поэтому я работаю с 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 минут, используя некоторые пользовательские данные из Интернета, я хочу знать. Это как раз то, что для меня стало естественным. Я хочу уведомить пользователя, когда процесс завершится с электронной почтой в любом случае, так что любой способ выполнить это просто денди.
Изменить: любое упоминание о «http-data» должно было сказать «www-data».
Измените оболочку по умолчанию для вашего http-data
пользователь к bash
или же dash
, В настоящее время использует sh
,
Проверь что у тебя $PATH
переменная находится внутри среды PHP.
Других решений пока нет …