РЕШЕНИЕ: мой файл Python был сбой без вывода, я смог диагностировать это с помощью попытки /, за исключением того, что напечатало сообщение об ошибке. Упс!
У меня есть сервер IIS для Windows 2012R2, настроенный для отображения веб-сайтов, которые существуют в репозитории GitHub. После удаления страниц из репозитория мне нужно обработать их с помощью скрипта Python, до этого момента это происходило два раза в день как запланированное задание. Пользователи хотели бы иметь возможность запускать пакетный файл, который обновляет / обрабатывает файлы, нажав кнопку на панели администратора сайта. Для этого я создал страницу PHP, которая должна выполнять тот же пакетный файл, который использует запланированная задача. Проблема, с которой я сталкиваюсь, заключается в том, что когда пакет запускается, команды git выполняются просто отлично, но скрипт Python не запускается.
Я уже пытался запустить командный файл, используя exec (), system () и shell_exec (). Я также попытался запустить командный файл из сценария powershell, который запускает командный файл. Я предполагаю, что PHP не имеет необходимых разрешений для запуска файлов Python. Вот почему я также попытался передать учетные данные администратора в powershell через shell_exec. Все они потерпели неудачу.
Вот посмотрите, как выглядит командный файл
cd C:\inetpub\wwwroot
git fetch --all
git reset --hard master
git pull https://username:password@github.com/user/repo_name
cd C:\inetpub
C:\Python37\python C:\inetpub\api_replace.py
И это то, что у меня сейчас есть в файле PHP.
<?php
session_start();
if(!isset($_SESSION["admin"]) || $_SESSION["admin"] !== true){
header("location: login.php");
exit;
}
$shellout = shell_exec('powershell C:\inetpub\refresh_pages.bat server_name\Administrator password');
echo $shellout
?>
Я также попытался запустить файл Python напрямую через exec (), system () и shell_exec ().
Результаты git pull отображаются на странице, но ни один из операторов print из файла Python не делает. Необходимая обработка файлов также не происходит.