Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP无法调用python脚本_Php_Python_Forms - Fatal编程技术网

PHP无法调用python脚本

PHP无法调用python脚本,php,python,forms,Php,Python,Forms,我目前正在一个网页上工作,我想在按钮点击事件上运行python脚本。我的python脚本在terminal中工作正常,但无法从PHP页面调用相同的脚本 <html> <head> <meta charset="UTF-8" /> </head> <? php print_r($_POST); if (isset($_POST['ON'])) { exec("sudo python /home/pi/Desktop/IOT/script5

我目前正在一个网页上工作,我想在按钮点击事件上运行python脚本。我的python脚本在terminal中工作正常,但无法从PHP页面调用相同的脚本

<html>
<head>
<meta charset="UTF-8" />
</head>


<? php
print_r($_POST);

if (isset($_POST['ON']))
{
exec("sudo python /home/pi/Desktop/IOT/script5.py");
}
if (isset($_POST['OFF']))
{
exec("sudo python /home/pi/Desktop/IOT/script5a.py");
}
if (isset($_POST['1']))
{
exec("sudo python /home/pi/Desktop/IOT/script1.py");
}
?>
<form method="POST">
<button name="ON" value="Submit">turn On</button>&nbsp;
<button name="OFF">turn Off</button><br>&nbsp;
<button name="1">First</button><br>

</form>
</html>
下面是我的PHP页面的代码

<html>
<head>
<meta charset="UTF-8" />
</head>


<? php
print_r($_POST);

if (isset($_POST['ON']))
{
exec("sudo python /home/pi/Desktop/IOT/script5.py");
}
if (isset($_POST['OFF']))
{
exec("sudo python /home/pi/Desktop/IOT/script5a.py");
}
if (isset($_POST['1']))
{
exec("sudo python /home/pi/Desktop/IOT/script1.py");
}
?>
<form method="POST">
<button name="ON" value="Submit">turn On</button>&nbsp;
<button name="OFF">turn Off</button><br>&nbsp;
<button name="1">First</button><br>

</form>
</html>

打开
关闭
首先

您需要传递密码才能使用sudo运行任何命令,您可以使用以下参数:

-S          The -S (stdin) option causes sudo to read the password from
            the standard input instead of the terminal device.
您可以这样使用它(替换为您的实际密码):

exec(“echo | sudo-spython/home/pi/Desktop/IOT/script1.py”);

查找更多信息

sudo通常需要输入密码,所以你不能这样称呼它。。。。你不能在没有根访问权限的情况下运行python吗?