看板 Perl 關於我們 聯絡資訊
小弟最近試著想用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
CindyLinz:我猜是權限.. 跑 cgi 用的 user 沒權限寫檔到那個目錄 10/23 18:46
ian0219:請問WINDOWS環境底下也會有權限的問題嗎? 10/24 14:27
CindyLinz:不熟 windows.. orz 10/24 17:06
abliou:回二樓 如果是xp以上會有這問題 10/24 19:27
abliou:但是我的直覺是 你的blasp沒有設定到環境變數中 無法執行 10/24 19:31
ian0219:但我如果直接用CMD執行blastp指令是可以的出結果的這樣還 10/24 22:57
ian0219:得出結果 10/24 22:58
ian0219:是環境變數的問題嗎?我在電腦上單純跑system(...)這行指令 10/24 23:01
ian0219:也跑得出來,但是一放進CGI裡就跑不出結果.... 10/24 23:02
abliou:s那後面的fasta檔跟db檔呢?建議先全部用絕對路徑看看 10/25 17:34
ian0219:db我已經建好放在cgi-bin資料夾裡了,Fasta檔是讀取使用者 10/26 00:41
ian0219:輸入表單傳給cgi開檔存在cgi-bin裡 10/26 00:45
ian0219:我自己感覺好像是cgi沒有使用server端程式的權限, 10/26 00:48
ian0219:我用PRINT印出system的回傳值是0 10/26 00:50
ian0219:各位大大,我找到問題了,我勾取BLASTP以系統管理員權限 10/26 01:25
ian0219:執行,就可以了,謝謝各位 10/26 01:25