PHP에서 Python 파일 호출하여 연동하는 방법

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";
?>

실행 결과 화면

PHP에서 Python 파일 호출 예제 코드 실행 화면

3. 권한 설정

PHP에서 `shell_exec()` 또는 `exec()` 함수를 사용하려면 웹 서버가 해당 명령을 실행할 수 있는 권한이 필요합니다. 일반적으로 웹 서버 사용자(www-data 등)에게 Python 실행 파일과 스크립트 파일에 대한 실행 권한을 부여해야 합니다.

4. 보안 고려 사항

PHP에서 외부 프로그램을 실행할 때는 보안에 유의해야 합니다. 사용자 입력을 직접 명령어에 포함시키는 경우, 명령어 주입 공격(Command Injection)의 위험이 있습니다. 이를 방지하기 위해 `escapeshellarg()` 함수를 사용하여 인자를 안전하게 처리해야 합니다.

관련 이전 게시글

이 글이 도움이 되셨다면 공유 부탁 드립니다.

위로 스크롤