关于linux的BOA,跪求大家一定要帮忙!!!!!!
本帖最后由 yidehui 于 2013-9-3 13:55 编辑这几天在2440上移植了BOA,目前使用HTML编写网页,使用c语言编写cgi程序,用nfs挂载,使用浏览器可以正常访问了网页。
我的cgi程序放置的目录:/var/www/cgi-bin/
网页放置的目录:/var/www/
但是我把c语言改换成bash脚本之后就不行了,我只是想在网页上显示几行字而已啊!
编写的bash脚本------abc.sh
#!/bin/bash
echo "Content-type: text/html\n\n"
echo ""
echo "hello world"
其中abc.sh脚本我经过了以下两条命令的处理:
chmod 777 abc.sh
dos2unix abc.sh
abc.sh的存放路径跟c语言编写的cgi程序的路径一样!
而网页abc.html 的代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>测试</title>
</head>
<body>
<form id="form1" name="form1" method="get" action="/cgi-bin/abc.sh">
<input type="submit" name="Submit" value="提交" />
</form>
</body>
</html>
网页截图如下所示:
但是当我点击确定按钮是却显示
同时2440串口输出 cgi_header: unable to find LFLF
这是我的boa.conf,不知道如果改用bash的话,是不是要进行另外设置,这里先给出来。
Port 80
User 0
Group 0
ErrorLog /var/log/boa/error_log
AccessLog /var/log/boa/access_log
ServerName weibo.com
DocumentRoot /var/www
UserDir public_html
DirectoryIndex index.html
DirectoryMaker /usr/lib/boa/boa_indexer
KeepAliveMax 1000
KeepAliveTimeout 10
MimeTypes /etc/mime.types
DefaultType text/plain
CGIPath /bin:/usr/bin:/usr/local/bin
Alias /doc /usr/doc
#ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
我现在很无语啊!用c语言可以,但是用bash编程却不可以!大家给点思路啊!
是不是 method="get" action="/cgi-bin/abc.cgi"应该改成 method="get" action="/cgi-bin/abc.sh", 你的目录下都没有abc.cgi这个文件。。。。 或者把abc.sh重命名成agc.cgi也可以 eric.zhc 发表于 2013-9-3 13:23 static/image/common/back.gif
或者把abc.sh重命名成agc.cgi也可以
刚才复制黏贴的时候错误,其实两者后缀都是相同的 应该是你的shell脚本问题,你在PC机上./abc.sh 执行成功过吗? 或者在板子上./abc.sh执行成功过吗? 关于bash脚本在cgi上应用,我在网上只找到 http://tieba.baidu.com/p/2436688523
不过只是Apache + bash,不是BOA + bash。不晓得是不是要另外进行配置? eric.zhc 发表于 2013-9-3 14:08 static/image/common/back.gif
应该是你的shell脚本问题,你在PC机上./abc.sh 执行成功过吗? 或者在板子上./abc.sh执行成功过吗? ...
可以啊!
运行结果如下所示:
book@book-desktop:/work/drivers_and_test/web_project$ ./abc.sh
Content-type: text/html\n\n
hello world eric.zhc 发表于 2013-9-3 14:08 static/image/common/back.gif
应该是你的shell脚本问题,你在PC机上./abc.sh 执行成功过吗? 或者在板子上./abc.sh执行成功过吗? ...
但是在2440的板子上运行时,显示
# ./abc.sh
-sh: ./abc.sh: not found eric.zhc 发表于 2013-9-3 14:08 static/image/common/back.gif
应该是你的shell脚本问题,你在PC机上./abc.sh 执行成功过吗? 或者在板子上./abc.sh执行成功过吗? ...
2440开发板上输入env命令,显示如下:
USER=root
OLDPWD=/var/www/cgi-bin
HOME=/
TERM=vt102
PATH=/sbin:/usr/sbin:/bin:/usr/bin
SHELL=/bin/sh
PWD=/etc/init.d
eric.zhc 发表于 2013-9-3 14:08 static/image/common/back.gif
应该是你的shell脚本问题,你在PC机上./abc.sh 执行成功过吗? 或者在板子上./abc.sh执行成功过吗? ...
在2440上输入以下命令:
#!/bin/bash 改成#!/bin/sh 以后别到处抄代码了。。。 eric.zhc 发表于 2013-9-3 14:55 static/image/common/back.gif
#!/bin/bash 改成#!/bin/sh 以后别到处抄代码了。。。
现在变成了下载!不是打印。
把abc.sh改成abc.cgi呢? eric.zhc 发表于 2013-9-3 15:03 static/image/common/back.gif
把abc.sh改成abc.cgi呢?
如果把sh后缀改成cgi,那么网页那里的form action也要改成cgi
我试了一下,还是显示下载界面 eric.zhc 发表于 2013-9-3 15:03 static/image/common/back.gif
把abc.sh改成abc.cgi呢?
貌似板子好像不认识这文件!?不把他当成cgi程序! User 0
Group 0
改成
User root
Group root eric.zhc 发表于 2013-9-3 15:03 static/image/common/back.gif
把abc.sh改成abc.cgi呢?
c语言的cgi程序之所以能被运行,打印出文字,是因为arm-linux-gcc 编译,
而是用bash编程的话,不用做什么相关类似的吗? 本帖最后由 yidehui 于 2013-9-3 15:27 编辑
eric.zhc 发表于 2013-9-3 15:15 static/image/common/back.gif
User 0
Group 0
改成
我修改boa.conf后运行 ./boa
2440显示No such user: root
这是我的环境变量:
# env
USER=root
OLDPWD=/usr/sbin
HOME=/
TERM=vt102
PATH=/sbin:/usr/sbin:/bin:/usr/bin
SHELL=/bin/sh
PWD=/usr/sbin 本帖最后由 yidehui 于 2013-9-3 16:33 编辑
跪求大侠们指导!!!我已经苦恼了很久啊!!{:cry:}{:cry:}
跪求大侠们解答!!!小弟磕头了!!! 本帖最后由 yidehui 于 2013-9-3 16:46 编辑
下面是我的网页文件abc.html和cgi脚本abc.sh的附件,代码极短!!!不到1k !!希望大侠们能测试一下!解决我这个cgi程序的字符打印问题!
echo "Content-type: text/html\n\n"
修改为echo "Content-type: text/html"试试 kelp 发表于 2013-9-3 16:58 static/image/common/back.gif
echo "Content-type: text/html\n\n"
修改为echo "Content-type: text/html"试试
可以了,请问这是怎么回事啊!?好奇怪!
是不是跟我的shell类型有关啊,我的shell是sh yidehui 发表于 2013-9-3 18:56 static/image/common/back.gif
可以了,请问这是怎么回事啊!?好奇怪!
是不是跟我的shell类型有关啊,我的shell是sh ...
echo 自己会加上回车的。 你这个代码是从C中复制过来的,多了两个\n kelp 发表于 2013-9-3 18:59 static/image/common/back.gif
echo 自己会加上回车的。 你这个代码是从C中复制过来的,多了两个\n
还有一个问题,我的2440的shell只有sh,能不能直接到虚拟机上linux的/bin/目录下把bash拷贝出来到2440的/bin/目录下,让2440多一种shell? yidehui 发表于 2013-9-3 19:04 static/image/common/back.gif
还有一个问题,我的2440的shell只有sh,能不能直接到虚拟机上linux的/bin/目录下把bash拷贝出来到2440的/ ...
不行,虚拟机上的bash应该是86的可执行文件,而2440是arm的,构架不一样 omityoung 发表于 2013-9-4 10:51 static/image/common/back.gif
不行,虚拟机上的bash应该是86的可执行文件,而2440是arm的,构架不一样
关于cgi程序在网页上的应用,我有一点不理解,有些变量如date,在shell脚本中使用$(date) ,网页上会打印出时间;
但是我在sh脚本中写上ifconfig,或者$(ifconfig)之类写法却无法打印出相应信息在网页上?
下面是我的sh脚本:我应该如何修改.
#!/bin/sh
echo -e "Content-type:text/html"
echo ""
echo "<li>System: "$(uname -a)
echo "<li>Time: "$(date)
echo " "ifconfig | sed -ne 's/ *inet addr:\(\{1,3\}\.\{1,3\}\.\{1,3\}\) *B.*/Your IP is:\1/p'
/*最后一行在2440上运行显示Your IP is 192.168.0.200*/
页:
[1]