我已经开始了一个小项目,仅仅是为了在家里练习。 我正在使用带有debian linux的raspberry pi,在主板上安装了apache webserver 2,我不知道在webserver上但有些如何设法创建带有按钮的html页面和运行带按钮click的cgi脚本.Cgi脚本有html代码响应按钮点击。 显示hello world,然后命令调用shell脚本.sh。
shell脚本有以下命令RPI.a(我的项目在c lang中调用gpio pin在命令行中执行.cgi脚本时运行良好。
1)整体Html按钮点击 - > 2)调用cgi脚本(带有html的shell) - > 3)调用shell(.sh) - >它调用我的应用程序闪烁led。
从命令行手动执行.cgi时运行良好。但是当点击按钮时,它会跳过“$(sh script.sh)并执行下一行。
权限所有文件都已读取并执行所有文件。
.cgi脚本
#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "<html><head><title>Bash as CGI"
echo "</title></head><body>"
echo "<h1>Hello world</h1>"
"$(sh Home_auto.sh)"
echo "skipps the program"
echo "</body></html>"
我的Home_auto.sh脚本
sudo RPI.a<<EOF
EOF
将我的申请目录添加到$ PATH var。
我发现当不是root用户时,它几次无法执行我的应用程序。显示的 找不到RPI.a命令 请帮我调用script.sh,它会在按钮点击时调用我的RPI.a应用程序。
答案 0 :(得分:2)
通过运行a2enmod
启用cgi模块如果您没有看到以下文件
ls /etc/apache2/mods-enabled/cgi*
/etc/apache2/mods-enabled/cgid.conf
/etc/apache2/mods-enabled/cgid.load
然后你需要启用cgi模块
sudo a2enmod cgi
sudo service apache2 restart
答案 1 :(得分:1)
检查www-data是否能够执行脚本(权限,路径):
sudo su www-data /your/script.sh