[問題] 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