푸르미르

[server]php안에서 python2.7 스크립트 실행하기 본문

SECURITY/VaccineServerSecurity

[server]php안에서 python2.7 스크립트 실행하기

((•_•)) 2021. 10. 26. 23:34

별 지랄을 해도 안되는 문제가 있었다.

 

 

프로젝트 보안상 경로를 노출시키는 것은 위험할 것 같아서 가렸다.

저 위의 두가지 명령어 뿐아니라 권한을 주는 등 여러가지 시도를 해보았지만 

php안에서 파이썬 스크립트를 실행하는, 그거 하나만큼은 절대 안되었다.

시스템명령어를 사용하면 잘되는데 딱, 파이썬 파일만 실행하면 되지 않았다.

이유도 모르고 시간도 없기에 우리는 다른 방법을 모색하기로 하였다.

os는 윈도우2012v이다.

 

https://www.geeksforgeeks.org/php-shell_exec-vs-exec-function/

 

PHP | shell_exec() vs exec() Function - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

위의 링크를 타서 보면 알 수 있듯, 

Return Value: This function returns the executed command or NULL if an error occurred. 

즉 shell_exec()이라는 함수는 리턴값이 존재한다는 것.

그래서 파이썬 스크립트를 실행하고 echo로 감싸주지 않았으니

실행되는지 몰랐다.(추가로 리턴값을 받아서 출력해도 안나왔던 것은

파이썬 파일이 오류가 있었다는 것)

shell_exec('명령어') == null일 경우, 명령어 실행 도중 에러가 발생했었다는 것이니

이에 대한 확인이 필요하다,

 

echo shell_exec("명령어>&1"); 코드를 사용하여 에러를 출력해보고 무슨에러가 발생한 건지 

확인하면서 개발하는 것이 필요해 보인다.

 

또 추가로 말하자면,

shell_exec('명령어')에서 디렉토리를 이동하는 명령어를 사용하여 현재 경로를 cd로 움직일 경우.,

함수 shell_exec이 끝나는 시점에서 php스크립트의 위치로 다시 되돌아온다는 점 헷갈리지말자.