PHP에서 외부 파이썬 프로그램을 실행하려면 shell_exec 함수를 사용할 수 있습니다. 이 함수는 셸(shell)을 통해 명령을 실행하고 그 결과를 문자열 형태로 반환합니다. 다만 명령줄에서 NULL이 전달되거나 어떠한 출력도 발생하지 않는 경우에는 오류를 반환한다는 점에 유의해야 합니다.
shell_exec 함수 기본 사용법
다음은 PHP에서 파이썬 스크립트를 실행하는 기본적인 코드 예제입니다.
<?php
$command_exec = escapeshellcmd('path-to-.py-file');
$str_output = shell_exec($command_exec);
echo $str_output;
?>
코드 설명
- escapeshellcmd(): 셸 명령에 포함될 수 있는 특수문자를 이스케이프 처리하여 명령 인젝션과 같은 보안 위험을 사전에 차단합니다.
- shell_exec(): 전달받은 명령을 셸에서 실행한 뒤, 표준 출력 결과를 문자열로 반환합니다.
- echo: 실행된 결과를 화면에 출력합니다.
파일 권한 설정
파이썬 스크립트가 성공적으로 실행되기 위해서는 해당 파일 및 관련 디렉터리에 적절한 권한(퍼미션)을 부여해야 합니다. 권한이 부족하면 스크립트가 실행되지 않거나 예기치 않은 오류가 발생할 수 있으므로, 실행 전 반드시 확인하는 것이 좋습니다.
유닉스(Unix) 환경에서의 주의사항
참고: 유닉스 계열 플랫폼에서는 PHP 코드가 웹 사용자(web user) 권한으로 실행됩니다. 따라서 웹 사용자에게 파이썬 파일이 위치한 디렉터리와 하위 디렉터리에 대한 필요한 읽기·실행 권한을 반드시 부여해야 합니다.