Я запускаю Nginx на моем малине PI с PHP 5.4.14 (fpm-fcgi). Все работает хорошо. Но в одном скрипте я вызываю вызов оболочки с помощью shell_exec.
echo shell_exec("sudo python " . $file);
он работает хорошо, если я использую консоль с
php test.php
но если я использую браузер для вызова этого файла, то php-файл будет выполнен, но я не получаю никакого вывода от shell_exec (даже сообщение об ошибке).
Поэтому я надеюсь, что вы могли бы помочь мне исправить эту проблему.
В названном файле python используется GPIO, поэтому требуется sudo, не так ли?
Вот мой код python:
#!/usr/bin/env python try: import RPi.GPIO as GPIO except RuntimeError: print "Error Importing GPIO. Did your forgot the superuser privilieges?" GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) GPIO.setup(3, GPIO.OUT) GPIO.output(3, not GPIO.input(3)) print "New LED state is: ", GPIO.input(3) #GPIO.cleanup()
для справок в будущем:
Я нашел – мои глаза – не очень хорошее решение:
sudo echo "apache ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
Найдено здесь .
Mm, я попробую с этим двумя простыми примерами:
/Scripts/test.py
#!/usr/bin/env python print (str('hello world'))
/var/www/test.php
<?php echo shell_exec('/Scripts/test.py'); ?>
через браузер, покажите мне «привет мир»,
Возможно, попробуйте следующее:
chmod a+x your_py_file.py
Надеюсь, что поможет ..