私は数日間立ち往生しました。 PHPから単純なPythonスクリプトを呼び出そうとしています。私の人生にとって、私は問題が何であるか把握できません。 chmod + xでonoff.pyスクリプトを実行可能にしました。PHPでPythonスクリプトを呼び出すことができません
私はこのようなコマンドラインからうまくスクリプトを実行することができます:私はPHPからスクリプトを呼び出すしようとすると、
[email protected]:/var/www/html $ python onoff.py
LED on
LED off
私の問題があります。私は何も得られない。
私のPythonスクリプト:
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(18,GPIO.OUT)
print "LED on"
GPIO.output(18,GPIO.HIGH)
time.sleep(1)
print "LED off"
GPIO.output(18,GPIO.LOW)
私のPHPスクリプト:すべてのヘルプは大歓迎です
<?php
$command = escapeshellcmd('python /var/www/html/onoff.py');
$output = shell_exec($command);
echo $output;
?>
!
EDIT:
のようなループしながら、私はシンプルに自分のonoff.pyスクリプトを変更した場合:ブラウザ上で
#!/usr/bin/python
x=1
while (x<10):
print x
x=x+1
出力は次のとおりです。
1 2 3 4 5 6 7 8 9
Iちょうどドンループが実行される理由を理解していませんが、元のPythonコードでは出力が得られません。
EDIT 2:
[OK]をので、私は別のアプローチを取って、コードが失敗した場所を確認しようとしています。私はコードのビットを一度に追加しています。以下をご覧ください。
#!/usr/bin/python
import random
import time
import RPi.GPIO as GPIO
randomNumber = random.randint(1, 20)
GPIO.setmode(GPIO.BCM)
#GPIO.setup(18,GPIO.OUT)
print randomNumber
ここでPHPを実行すると、乱数が表示されるので、pythonスクリプトが実行されていることがわかります。 GPIO.setup(18、GPIO.OUT)のコメントを外してPHPを実行すると、空白の画面が表示されます。なぜこのスクリプトが失敗するのかわかりません。
義務参照:[exec()の問題をどのようにデバッグできますか?](http://stackoverflow.com/q/12199353) – mario