2016-06-11 3 views
3

나는 Raspberry Pi에서 아파치 서버를 실행하고 그것을 인쇄하여 센서 입력을 반환하는 python 스크립트를 가지고있다. 이렇게하면 콘솔에 제대로 인쇄됩니다. 현재 나는이 출력을 얻고 센서를 읽으면 빛을 끄고 다시 인쇄하기 전에 PHP 스크립트를 가지고 있습니다. 이것은 콘솔에서 실행할 때도 작동합니다. 마지막 부분은 PHP에서 출력을 얻으려고하는 자바 스크립트입니다. "성공"함수를 실행하지만 PHP 스크립트에서 "0"을 얻는 ajax를 사용하면됩니다.cgi없이 python에서 JavaScript로 float를 얻는 방법

내 PHP 스크립트 :

<?php 

exec ("python temp.py", $temp); 
if((float)$temp[0]>28) 
{ 
exec("gpio read 0",$state); 
if($state[0]=="1") 
{ 
include('gpio.php'); 
echo("Overheated: ".$temp[0]); 
} 
} 
else 
{ 
echo($temp[0]); 
} 
?> 

내 JS : 어떤 제안이 크게 감사합니다

$.ajax(
    { 
     type: "GET", 
     url: "temp.php", 
     dataType: "text", 
     success: function(msg) 
     { 
      alert("asd"+typeof msg); 
     document.getElementById('text').innerHTML = msg; 
      return msg; 
     }, 
    error: function(jqXHR, textStatus, errorThrown){ 
       alert(jqXHR.responseText); 
      } 

}); 

. 고맙습니다.

+0

정확한 값과 유형을 보려면'var_dump()'를 시도하십시오. 그것이 기대했던 것이 아니라면'?>'괄호를 닫지 말고 스크립트 끝에'die()'또는'exit()'를 추가해보십시오. – Nevertheless

+0

명령 줄에서 PHP를 실행하면 string (7) "26.9862"가 예상대로 나타납니다. 그러나 웹 사이트는 string (0) ""을 인쇄합니다. 왜 적절한 값을 표시하지 않는지에 대한 단서가 있습니까? 그리고 현재 PHP에서 exit()가 있습니다. – dragoneye000

+0

캐스팅하지 않으면 PHP가 파이썬 스크립트에서 NULL 값을 얻고있는 것처럼 보입니다. – dragoneye000

답변

1

오른쪽. 아마도 사용자 권한 문제 일 것입니다. 왜냐하면 터미널에서 사용자의 스크립트를 출력하기 때문입니다. 그리고 서버의 사용자 아래에서 실행중인 브라우저는 빈 문자열을 반환합니다.

서버에서 스크립트를 실행할 때 www-data (또는 무엇이든) 권한을 확인하십시오. 오류보고를 설정하고 실행

ini_set('display_errors', true); 
error_reporting(E_ALL); 

echo exec('whoami'); 

을가 sudoer, 해당 사용자하여 .py 스크립트 실행을 허용하는 올바른 권한이 설정되어 있지 않은 사용자를 출력합니다.