>백엔드 개발 >PHP 튜토리얼 >내 PHP exec() 함수가 Python 스크립트를 실행하지 않는 이유는 무엇이며 어떻게 해결할 수 있습니까?

내 PHP exec() 함수가 Python 스크립트를 실행하지 않는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-28 12:07:10308검색

Why Doesn't My PHP exec() Function Run Python Scripts, and How Can I Fix It?

PHP에서 Python 스크립트 실행

문제:

exec()를 사용하여 PHP에서 Python 스크립트를 실행하려고 할 때 명령을 실행하면 적절한 오류 보고 및 실행에도 불구하고 PHP가 출력을 생성하지 못합니다.

근본 원인:

"apache" 또는 "www-data"와 같은 웹 서버 계정에 액세스 및 액세스에 필요한 권한이 없을 때 문제가 발생합니다. Python 파일을 실행합니다. 기본적으로 웹 서버 계정은 제한된 권한으로 작동하는 경우가 많습니다.

해결 방법:

이 문제를 해결하려면 웹 서버 계정에 실행을 위한 적절한 권한이 있는지 확인하는 것이 중요합니다. 파이썬 스크립트. 이는 다음을 통해 달성할 수 있습니다:

  • 웹 서버 사용자로 로그인: su - 명령을 사용합니다. 웹 서버의 신원을 가정합니다.
  • 파일 권한 수정: chmod 명령을 사용하여 Python 스크립트에 필요한 권한을 부여합니다. 예: chmod u x /srv/http/assets/py/switch.py

권장 기능:

exec()를 사용하는 대신 다음과 같습니다. 쉘을 통해 명령을 실행하려면 PHP의 shell_exec() 함수를 활용하는 것이 좋습니다. 이 함수는 실행된 명령에 의해 생성된 전체 출력을 반환하거나 오류가 있거나 출력이 없는 경우 NULL을 반환합니다.

예:

$command = escapeshellcmd('/usr/custom/test.py');
$output = shell_exec($command);
echo $output;

필수 고려 사항:

Python 스크립트가 올바르게 실행되도록 하려면 다음 줄을 첫 번째 줄로 포함하세요. 스크립트:

#!/usr/bin/python

이 줄은 사용할 Python 인터프리터를 지정하여 시스템의 다양한 Python 설치와의 호환성을 보장합니다. 또한 Python 스크립트에는 적절한 권한이 있어야 하며 필요한 시스템 명령이나 파일은 웹 서버 계정에서 액세스할 수 있어야 합니다.

위 내용은 내 PHP exec() 함수가 Python 스크립트를 실행하지 않는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.