2016-06-11 2 views
3

Я запускаю сервер Apache из Raspberry Pi и имею скрипт python, который возвращает вход датчика, печатая его. Это правильно печатает его на консоли. В настоящее время у меня есть php-скрипт, который получает этот вывод и отключает свет, если датчик читает высоту, прежде чем печатать его снова. Это также работает при запуске с консоли. Последняя часть - это javascript, который должен получить выход из php. Он делает это с помощью ajax, который запускает функцию «success», но получает «0» из скрипта php.Как получить поплавок с python на JavaScript без cgi

Мой 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]); 
} 
?> 

Мои ЯШ:

$.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 из командной строки, я получаю строку (7) «26.9862», как и ожидалось. Но веб-сайт печатает строку (0) "". Любые подсказки относительно того, почему это не отображает правильное значение? И у меня в настоящее время есть exit() в php. – dragoneye000

+0

Кажется, что без каста php получает значение NULL из скрипта python. – dragoneye000

ответ

1

Право. Вероятно, это проблемы с правами пользователя, потому что вы получаете выходной скрипт под своим пользователем с терминала. И браузер, который запускает его под пользователем сервера, возвращает пустую строку.

Проверить при выполнении скрипта с вашего сервера www-data (или что-то еще). Настройка отчетов об ошибках и запуск:

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

echo exec('whoami'); 

Если он печатает пользователь, который не sudoer, установить правильные разрешения разрешить выполнение Вашего .py скрипта пользователя.

 Смежные вопросы

  • Нет связанных вопросов^_^