2016-08-19 4 views
0

그래서 임PHP를 통해 파이썬 스크립트를 실행

exec('C:\\Python27\\python.exe C:\\WEBSITE_DATA\\script.py'); 

스크립트가 작동하고 생성 ...이 코드

exec('C:\Python27\python.exe C:\WEBSITE_DATA\script.py'); 

또는 더블 백 스페이스를 사용하여 PHP에서 파이썬 스크립트를 실행하려고 셰이프 파일이 정상적으로 실행되면 .py 파일로 문제가 발생하지 않습니다.

나는 그냥 내가 쫓아 할 수 있도록

PHP 로그에 오류의 결석 권한 문제가 있다면 확인되지 않은 수행 할 python27 폴더와 웹 사이트 데이터 폴더에서 모두 완벽하게 제어 할 수 있도록 권한을 변경 버그 또는 코드 문제

Windows 서버 2012에서 IIS를 실행하고 있습니다. r2가 내 문제입니까? 내가 할 수있는 일이 가능한거야?

또한 가능한 경우 내가 PHP에서 파이썬으로 변수를 교환 한 다음 다시 사용할 수 있습니까?

답변

1

그건 아주 나쁜 일입니다. 그것은 매우 해킹되고 안전하지 않은 솔루션입니다. 이를 명심하십시오.

이렇게하면 exec이 아닌 콘솔에서 명령을 실행하는 PHP system 함수를 찾아야합니다.

PHP 스크립트에서 Python으로 변수를 전송하는 방법은 여러 가지가 있습니다. MySQL 데이터베이스에 데이터를 쓰고 파이썬 스크립트에서 읽을 수 있습니다. PHP zip 및 json_encode 함수를 사용하여 JSON의 모든 변수를 압축하고 디스크의 파일에 JSON을 저장 한 다음 Python 스크립트의 동일한 위치에서 읽을 수 있습니다.

하지만 가장 간단한 방법은 system 전화에서이 작업을 수행하는 것입니다

system("C:\Python27\python.exe /path/to/script.py $a $b $c") 

이런 식으로 변수는 파이썬 스크립트에 인수 될 것입니다. 거기 당신은 단지 sys.argv 배열 같은에서 읽을 CA :

import sys 
a = sys.argv[1] # Note that the first argument is [1], not [0] 
b = sys.argv[2] 
... 

내가 같은 일을 제안 PHP 스크립트로 다시 값을 전송하려면 - 디스크에 JSON에 저장 한 후 읽기, PHP 스크립트에서이 JSON 후 구문 분석 파이썬 스크립트의 실행이 완료됩니다.

지금, 내가 어떻게해야하는지에 대해 말했지만, 절대해서는 안됩니다. 훨씬 더 좋은 방법은 요청을 처리하고 Python으로 처음 작성한 작업을 수행하는 Python에 CGI 스크립트를 작성하는 것입니다. 자세한 내용은 여기를 참조하십시오. - https://www.linux.com/blog/configuring-apache2-run-python-scripts

+0

안전한 해결책은 무엇입니까? –

+0

@k_schultz 방금 추가 된 답변의 끝을 확인하십시오. 파이썬으로 스크립트를 작성하고 CGI 스크립트로 만들어보십시오. 여기에 대해 읽어보십시오 - https://www.linux.com/blog/configuring-apache2-run-python-scripts –

관련 문제