作者ian0219 (Ian)
看板Perl
標題[問題] cgi system問題
時間Wed Oct 23 16:42:51 2013
小弟最近試著想用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>";
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.221.52.113
1F:推 CindyLinz:我猜是權限.. 跑 cgi 用的 user 沒權限寫檔到那個目錄 10/23 18:46
2F:→ ian0219:請問WINDOWS環境底下也會有權限的問題嗎? 10/24 14:27
3F:→ CindyLinz:不熟 windows.. orz 10/24 17:06
4F:推 abliou:回二樓 如果是xp以上會有這問題 10/24 19:27
5F:推 abliou:但是我的直覺是 你的blasp沒有設定到環境變數中 無法執行 10/24 19:31
6F:→ ian0219:但我如果直接用CMD執行blastp指令是可以的出結果的這樣還 10/24 22:57
7F:→ ian0219:得出結果 10/24 22:58
8F:→ ian0219:是環境變數的問題嗎?我在電腦上單純跑system(...)這行指令 10/24 23:01
9F:→ ian0219:也跑得出來,但是一放進CGI裡就跑不出結果.... 10/24 23:02
10F:推 abliou:s那後面的fasta檔跟db檔呢?建議先全部用絕對路徑看看 10/25 17:34
11F:→ ian0219:db我已經建好放在cgi-bin資料夾裡了,Fasta檔是讀取使用者 10/26 00:41
12F:→ ian0219:輸入表單傳給cgi開檔存在cgi-bin裡 10/26 00:45
13F:→ ian0219:我自己感覺好像是cgi沒有使用server端程式的權限, 10/26 00:48
14F:→ ian0219:我用PRINT印出system的回傳值是0 10/26 00:50
15F:→ ian0219:各位大大,我找到問題了,我勾取BLASTP以系統管理員權限 10/26 01:25
16F:→ ian0219:執行,就可以了,謝謝各位 10/26 01:25