Linux CGI脚本未通过.sh脚本执行或调用

Linux CGI脚本未通过.sh脚本执行或调用,linux,apache,bash,shell,cgi-bin,Linux,Apache,Bash,Shell,Cgi Bin,我已经开始了一个小项目,只是为了在家实习。 我在debian linux上使用raspberry pi,在板上安装了apache webserver 2,我不知道webserver,但知道如何创建带有按钮的html页面,以及使用按钮单击运行的cgi脚本。cgi脚本具有响应按钮单击的html代码。 显示hello world,后跟调用shell script.sh的命令 shell脚本在c语言中有以下命令RPI.a(我的项目),它在命令行中执行.cgi脚本时调用gpio pin 1) 整体Html

我已经开始了一个小项目,只是为了在家实习。 我在debian linux上使用raspberry pi,在板上安装了apache webserver 2,我不知道webserver,但知道如何创建带有按钮的html页面,以及使用按钮单击运行的cgi脚本。cgi脚本具有响应按钮单击的html代码。 显示hello world,后跟调用shell script.sh的命令

shell脚本在c语言中有以下命令RPI.a(我的项目),它在命令行中执行.cgi脚本时调用gpio pin

1) 整体Html按钮点击->2)调用cgi脚本(带Html的shell)->3)调用shell(.sh)->调用我的应用程序闪烁的led

从命令行手动执行.cgi时运行良好。但当从html中单击按钮时,它将跳过“$(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>"
!/bin/bash
echo“内容类型:文本/html”
回声“”
echo“Bash作为CGI”
回声“”
回声“你好,世界”
“$(sh Home\u auto.sh)”
echo“跳过程序”
回声“”
My Home_auto.sh脚本

sudo RPI.a<<EOF
EOF

sudo RPI.a检查www数据是否能够执行脚本(权限、路径):


通过运行a2enmod启用cgi模块

如果您没有看到以下文件

ls /etc/apache2/mods-enabled/cgi*
/etc/apache2/mods enabled/cgid.conf
/etc/apache2/mods启用/cgid.load

然后需要启用cgi模块

sudo a2enmod cgi
sudo service apache2 restart

显示cgi脚本。#!/bin/bash-x echo“内容类型:text/html“echo”“echo”bash作为cgi“echo”“echo”“Hello world”“$(sh Home_auto.sh)“echo”跳过程序“echo”“上面是我用来执行我的.sh脚本的cgi脚本。sh脚本有RPI.a请将其添加到问题中,您可以将其正确格式化为代码。它执行了。sh脚本反过来调用了我的应用程序,该应用程序是使用交叉编译器编译的。谢谢。如果您正在查找
LoadModule
语法,它的作用是:
LoadModule cgid\u module modules/mod\u cgid.so
LoadModule cgi\u modules/mod\u cgi.so
sudo a2enmod cgi
sudo service apache2 restart