Запуск скриптов Python с использованием PHP на Windows Server - PullRequest
0 голосов
/ 02 мая 2019

РЕШЕНИЕ: мой файл 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 не делает. Необходимая обработка файлов также не происходит.

1 Ответ

0 голосов
/ 02 мая 2019

РЕШЕНИЕ: мой файл Python был сбой без вывода, я смог диагностировать это с помощью попытки /, за исключением того, что напечатало сообщение об ошибке. Упс!

...