다음 명령을 사용하여 PHP에서 Python 스크립트를 실행하려고합니다.
exec('/usr/bin/python2.7 /srv/http/assets/py/switch.py arg1 arg2');
그러나 PHP는 단순히 출력을 생성하지 않습니다. 오류보고는 E_ALL로 설정되고 display_errors는 켜져 있습니다.
내가 시도한 것은 다음과 같습니다.
- 내가 사용
python2
,/usr/bin/python2
그리고python2.7
대신/usr/bin/python2.7
- 나는 또한 아무것도 변경하지 않은 절대 경로 대신 상대 경로를 사용했습니다.
- 내가 명령을 사용하여 시도
exec
,shell_exec
,system
.
그러나 내가 달리면
if (exec('echo TEST') == 'TEST')
{
echo 'exec works!';
}
shutdown now
아무것도하지 않는 동안 완벽하게 잘 작동합니다 .
PHP에는 파일에 액세스하고 실행할 수있는 권한이 있습니다.
편집 : Alejandro 덕분에 문제를 해결할 수있었습니다. 동일한 문제가 발생하면 웹 서버가 아마도 루트로 실행되지 않을 것임을 잊지 마십시오. 웹 서버의 사용자 또는 유사한 권한을 가진 사용자로 로그인하고 직접 명령을 실행 해보십시오.