PHP에서 Python 파일 호출하여 연동하는 방법
PHP와 Python을 함께 사용하는 것은 각 언어의 강점을 결합하여 더 강력한 기능을 구현할 수 있는 좋은 방법입니다. 이번 글에서는 PHP에서 Python 파일을 호출하고, 변수 값을 전달하는 방법에 대해 알아봅니다. 또한, 이를 위해 필요한 권한 설정과 보안 고려 사항에 대해서도 알아봅니다.
1. 서론
PHP는 서버 사이드 스크립팅 언어로 웹 개발에서 널리 사용됩니다. 반면 Python은 데이터 처리, 머신 러닝 등 다양한 분야에서 강력한 기능을 제공합니다. 이 두 언어를 연동하면 웹 애플리케이션에서 더 많은 기능을 구현할 수 있습니다.
2. PHP에서 Python 파일 호출하기
1. 기본 개념
PHP에서 Python 파일을 호출하려면 `shell_exec()` 또는 `exec()` 함수를 사용할 수 있습니다. 이 함수들은 PHP 스크립트에서 외부 프로그램을 실행하고, 결과를 받아올 수 있게 합니다.
2. 예제 코드
다음은 PHP에서 Python 파일을 호출하고, Python 파일에서 결과를 출력하는 간단한 예제입니다.
Python
# test.py
import sys
# PHP에서 전달한 인자를 받습니다.
name = sys.argv[1]
print(f"Hello from Python, {name}!")
PHP
<?php
// test.php
echo "php start\n";
// Python 실행 파일의 경로 (예시)
$python_path = '/Python-3.9.7/python';
// Python 스크립트의 경로 (예시)
$script_path = '/private/test.py';
// PHP에서 변수를 설정합니다.
$name = "BlueShare";
// Python 파일을 호출하고 결과를 출력합니다.
// escapeshellarg() 함수를 사용하여 인자를 안전하게 전달합니다.
$command = "$python_path $script_path " . escapeshellarg($name);
$output = shell_exec($command);
echo $output;
echo "php end\n";
?>
실행 결과 화면

3. 권한 설정
PHP에서 `shell_exec()` 또는 `exec()` 함수를 사용하려면 웹 서버가 해당 명령을 실행할 수 있는 권한이 필요합니다. 일반적으로 웹 서버 사용자(www-data 등)에게 Python 실행 파일과 스크립트 파일에 대한 실행 권한을 부여해야 합니다.
4. 보안 고려 사항
PHP에서 외부 프로그램을 실행할 때는 보안에 유의해야 합니다. 사용자 입력을 직접 명령어에 포함시키는 경우, 명령어 주입 공격(Command Injection)의 위험이 있습니다. 이를 방지하기 위해 `escapeshellarg()` 함수를 사용하여 인자를 안전하게 처리해야 합니다.
관련 이전 게시글
- 윈도우 11에서 PHP 설치 및 아파치 연동 방법
- PHP에서 변수 기본 사용법
- PHP URL 파라미터 사용: GET, POST 방식
- PHP 디버깅 관련 내장 함수 세 가지: var_dump() 등
- PHP와 HTML을 함께 사용하여 웹 페이지 만들기
이 글이 도움이 되셨다면 공유 부탁 드립니다.