>

해결 방법 : 파이썬 파일이 출력없이 충돌하는 경우 오류 메시지를 인쇄 한 시도/제외로이를 진단 할 수있었습니다. 죄송합니다!

GitHub 리포지토리에있는 웹 사이트를 표시하도록 Windows 2012R2 IIS 서버를 설정했습니다. 리포지토리에서 페이지를 가져온 후 Python 스크립트를 사용하여 페이지를 처리해야합니다.이 시점까지는 하루에 두 번 예약 된 작업으로 발생합니다. 사용자는 사이트의 관리자 패널에서 버튼을 클릭하여 파일을 업데이트/처리하는 배치 파일을 실행할 수 있습니다. 이를 위해 예약 된 작업에서 사용하는 것과 동일한 배치 파일을 실행해야하는 PHP 페이지를 만들었습니다. 내가 겪고있는 문제는 배치가 실행될 때 git 명령이 정상적으로 실행되지만 Python 스크립트가 실행되지 않는 것입니다.

이미 exec (), system () 및 shell_exec ()를 사용하여 배치 파일을 실행하려고 시도했습니다. 또한 배치 파일을 실행하는 powershell 스크립트에서 배치 파일을 실행하려고했습니다. PHP에 Python 파일을 실행하는 데 필요한 권한이없는 것 같습니다. 그래서 shell_exec를 통해 관리자 자격 증명을 powershell에 전달하려고 시도한 것입니다. 이 모든 것이 실패했습니다.

배치 파일이 다음과 같은 모습인지 확인하십시오

cd C:\inetpub\wwwroot
git fetch --all
git reset --hard master
git pull https://username:[email protected]/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
?>

또한 exec (), system () 및 shell_exec ()를 통해 Python 파일을 직접 실행하려고 시도했습니다.

git pull의 결과는 페이지에 표시되지만 Python 파일의 print 문은 표시되지 않습니다. 필요한 파일 처리도 수행되지 않습니다.

  • 답변 # 1

    해결 방법 : 파이썬 파일이 출력없이 충돌하는 경우 오류 메시지를 인쇄 한 시도/제외로이를 진단 할 수있었습니다. 죄송합니다!

관련 자료

  • 이전 Neo4j 카운트는 실행 시간을 크게 늘리고 메모리가 부족합니다
  • 다음 Java 및 Processing 30 "프레임"클래스는 더 이상 사용되지 않습니다 대안이 있습니까?