PHP 강좌PHP + PYTHON 연동하기

페이지 정보

no_profile 최고관리자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일 21-07-28 15:50 25,880 0

본문

PHP안에서 exec 명령어를 통해 불러 올수 있습니다.

python 파일은 755로 권한을 꼭 주셔야합니다.


index.php

[code]

<?php

header('Content-Type: text/html; charset=UTF-8');
//변수에 한글이 포함될 경우 아래 코드를 추가한다.
putenv("LANG=ko_KR.UTF-8");
setlocale(LC_ALL, 'ko_KR.utf8');
$변수1 = "AAA";
$변수2 = "가나다";
$변수3 = "가 나 다"; //공백이 있을경우 문자열로 묶어줘야 함
//exec("python3 python.py ".$변수1." ".$변수2." \"".$변수3."\"", $output);
exec("cd /var/www/html/ && python3 python.py ".$변수1." ".$변수2." \"".$변수3."\"", $output);

//이렇게 하는 이유는 경로를 지정해주고 python3를 실행해야 정상적으로 작동.
//$rt=exec("ls");
//echo $rt;
//print_r($output);
echo $output[0]. "
"; //Success1 good
echo $output[1]. "
"; //Success2
echo $output[2]. "
"; //AAA
echo $output[3]. "
"; //가나다
echo $output[4]. "
"; //가 나 다
?>

[/code]


python.py

[code]

# -*- coding: utf-8 -*-
import sys
def call(var_1, var_2, var_3):
# 무언가를 처리하고..
# print로 값을 return해서 php에서 받을 수 있음
print('Success1', 'good')
print('Success2')
print(var_1)
print(var_2)
print(var_3)
call(sys.argv[1], sys.argv[2], sys.argv[3])

[/code]


PHP와 연동하여 파이썬으로 파일 다운로드, 크롤링 사용시 selinux 를 꺼주셔야합니다.

끄는 방법은 다음과 같습니다.


[code]

vi /etc/selinux/config

#또는

vi /etc/sysconfig/selinux

[/code]

SELINUX=disabled 로 변경 후 저장.

재부핑은 필수입니다.

추천 0

댓글목록