如何从apache下的bash脚本启动c程序

时间:2015-02-22 16:10:47

标签: c apache bash

可以请任何人帮助我。 我有以下脚本:

#!/bin/bash

cache_query=$QUERY_STRING
xxx=`echo $cache_query | grep -o 'x=[0-9]*' | sed 's/x=//g'`;  
yyy=`echo $cache_query | grep -o 'y=[0-9]*' | sed 's/y=//g'`;
zzz=`echo $cache_query | grep -o 'z=[0-9]*' | sed 's/z=//g'`; 
let "zzz=18-$zzz"   
content_type=`echo $cache_query | grep -o 'type_image=[a-z]*' | sed 's/type_image=//g'`;
db_name=`echo $cache_query | grep -o 'db=[a-z]*' | sed 's/db=//g'`;     


echo "Content-type: image/"${content_type}
echo ""


case "$db_name" in
"genshtab" ) db_path="/home/bases/gena.sqlite";;
"yasat"    ) db_path="/srv/ftp/upload/yasat.sqlitedb";;
esac


echo "x = " $xxx "y = " $yyy "z = " $zzz "type = " $content_type "database = " $db_name "db_path = " $db_path; #оставляю на всякий $
./tget ${db_path} ${db_name} "/mnt/tmpfs" ${content_type} ${zzz} ${yyy} ${xxx}
cat /mnt/tmpfs/${db_name}/${zzz}/${yyy}/${xxx}.${content_type}

我在c上写了tget程序,所以如果我写的话

./tget /srv/ftp/upload/yasat.sqlitedb yasat /mnt/tmpfs png 17 0 1
在bash行中,一切都很好,但如果我尝试从apache下的bash脚本调用这个程序 http://46.182.21.31/?type_image=png&db=yasat&x=2&y=1&z=15 程序没有启动,我的日志中没有错误, 有人有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我解决了下一个用sudo启动c程序的麻烦 sudo ./tget ...... 并将/ etc / sudoers添加到用户www-data的能力,以便在没有密码的情况下进行sudo查询