[问题] cgi system问题

楼主: ian0219 (Ian)   2013-10-23 16:42:51
小弟最近试着想用Perl写CGI来跑BLASTP
功能是想从网站上接收资料存成一个fasta档,来跟我建好的数据库跑Blastp,
但是跑到system指令的时候却没出现text.txt,不晓得是不是我漏了什么东西?
#!c:\perl64\bin\perl.exe
use CGI;
$q=CGI->new;
print "Content-type: text/html\n\n";
print "<HTML>\n<HEAD>\n<TITLE>Result</TITLE>\n<BODY>\n";
$sq=$q->param('SQ');
print $sq;
open FOUT, ">output.fasta";
print FOUT $sq;
close FOUT;
$blastp_cmd="blastp.exe -task blastp -query output.fasta -db AFP.fasta
-out text.txt";
system("$blastp_cmd");
open FP1,"<text.txt";
while(<FP1>)
{
print $_."\n";
}
close FP1;
print "</BODY>\n</HTML>";
作者: CindyLinz (Cindy Wang)   0000-00-00 00:00:00
我猜是权限.. 跑 cgi 用的 user 没权限写档到那个目录
楼主: ian0219 (Ian)   0000-00-00 00:00:00
请问WINDOWS环境底下也会有权限的问题吗?
作者: CindyLinz (Cindy Wang)   0000-00-00 00:00:00
不熟 windows.. orz
作者: abliou (愚者)   0000-00-00 00:00:00
回二楼 如果是xp以上会有这问题但是我的直觉是 你的blasp没有设定到环境变量中 无法执行
楼主: ian0219 (Ian)   0000-00-00 00:00:00
但我如果直接用CMD执行blastp指令是可以的出结果的这样还得出结果是环境变量的问题吗?我在电脑上单纯跑system(...)这行指令也跑得出来,但是一放进CGI里就跑不出结果....
作者: abliou (愚者)   0000-00-00 00:00:00
s那后面的fasta档跟db档呢?建议先全部用绝对路径看看
楼主: ian0219 (Ian)   0000-00-00 00:00:00
db我已经建好放在cgi-bin资料夹里了,Fasta档是读取使用者输入表单传给cgi开档存在cgi-bin里我自己感觉好像是cgi没有使用server端程式的权限,我用PRINT印出system的回传值是0各位大大,我找到问题了,我勾取BLASTP以系统管理员权限执行,就可以了,谢谢各位

Links booklink

Contact Us: admin [ a t ] ucptt.com