PHP выполнить скрипт Python из другого каталога - PullRequest
0 голосов
/ 18 марта 2019

У меня есть PHP-скрипт, который вызывает Python-скрипт (с аргументами):

<?php
$UPLOAD_DIR = 'tmp';
$AUDIOSPLIT = "../audiotranscri/scripts/audiospliter.py";
// This also fails using a symlink in the same dir
//$AUDIOSPLIT = "spliter";
$media_path = "tmp/media.mp3";
$subtitles_path = "tmp/mediasub.ass";

$cmd = "python3 ".$AUDIOSPLIT." ".$media_path." ".$subtitles_path." ".$UPLOAD_DIR;
echo($cmd);
system($cmd,$returnv);
echo($returnv);
?>

Он работает, когда я запускаю это из терминала bash

$ php7.2 dummy.php 

Но не удается при вызовеэто с сайта (Apache2 с PHP). Почему?

Примечание: я уверен, что Apache и PHP работают нормально, так как phpinfo () работает отлично.Версии: PHP 7.2.15, Ubuntu 18.04.1, Apache 2.4.29.

1 Ответ

0 голосов
/ 21 марта 2019

Попробуйте попробовать один из следующих способов:

использовать полный путь к вашей программе, поскольку PATH может не быть установлен при использовании system () - измените "python3" на "/ usr / bin / python3" или где угодноpython3 is.

Использование другой функции, exec (), shell_exec (), passthrough ()

Проверьте, позволяет ли ваш веб-сервер запускать определенные функции при запуске через http, проверьте ваш php.ini или проверьте с помощью php-скрипта, доступ к которому осуществляется через http

<?php
$function_name = "system";
if ( function_exists($function_name) ) {
    echo "$function_name is enabled";
}
else {
    echo "$function_name is not enabled";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...