duankousong9637 2019-07-28 17:00
浏览 107

通过Apache HTTP服务器从网站执行python脚本

I have a Raspberry 3B+ and I would like to run a python script on it. This script should be executed when a button on a website is pressed. I have created an Apache2 http server on the Raspberry. It works fine, I can access it from a browser on my notebook. Also the button is displayed as desired. In /var/www/html/index.php I have

<?php
if (isset($_POST['BUTTON']))
{
$output=shell_exec('sudo python /var/www/newDir/test.py');
echo "Output: <pre>$output</pre>";
}
?>

The contents of test.py is simply

print "it works"

The problem is that when I push the button on the website, it just displays "Output:" and that's it. Expected is "Output:it works". So the button works, but the python script is not executed.

When I run sudo python /var/www/newDir/test.py in the console, it displays "it works", so the python script works fine alone.

What I have tried so far:

  1. making the python script executable

sudo chmod +x /var/www/newDir/test.py

now test.py has permissions -rwxr-xr-x

  1. modifing sudoers file:

sudo visudo

and I added www-data raspberrypi=NOPASSWD: /var/www/newDir/test.py

  1. giving Apache permission to run scripts

sudo a2enmod mpm_prefork cgi

  1. adding right to execute CGI to the file /etc/apache2/sites-enabled/000-default.conf:

In this file inside the VirtualHost block I added:

<Directory /var/www/newDir>
Options +ExecCGI
</Directory>

Please if you have any more ideas, describe them in more detail because I am a beginner. Thank you so much in advance!!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 基于卷积神经网络的声纹识别
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 CSAPPattacklab
    • ¥15 一直显示正在等待HID—ISP
    • ¥15 Python turtle 画图
    • ¥15 stm32开发clion时遇到的编译问题