[問題] cgi system問題

看板Perl作者 (Ian)時間11年前 (2013/10/23 16:42), 編輯推噓4(4012)
留言16則, 3人參與, 最新討論串1/1
小弟最近試著想用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

10/23 18:46, , 1F
我猜是權限.. 跑 cgi 用的 user 沒權限寫檔到那個目錄
10/23 18:46, 1F

10/24 14:27, , 2F
請問WINDOWS環境底下也會有權限的問題嗎?
10/24 14:27, 2F

10/24 17:06, , 3F
不熟 windows.. orz
10/24 17:06, 3F

10/24 19:27, , 4F
回二樓 如果是xp以上會有這問題
10/24 19:27, 4F

10/24 19:31, , 5F
但是我的直覺是 你的blasp沒有設定到環境變數中 無法執行
10/24 19:31, 5F

10/24 22:57, , 6F
但我如果直接用CMD執行blastp指令是可以的出結果的這樣還
10/24 22:57, 6F

10/24 22:58, , 7F
得出結果
10/24 22:58, 7F

10/24 23:01, , 8F
是環境變數的問題嗎?我在電腦上單純跑system(...)這行指令
10/24 23:01, 8F

10/24 23:02, , 9F
也跑得出來,但是一放進CGI裡就跑不出結果....
10/24 23:02, 9F

10/25 17:34, , 10F
s那後面的fasta檔跟db檔呢?建議先全部用絕對路徑看看
10/25 17:34, 10F

10/26 00:41, , 11F
db我已經建好放在cgi-bin資料夾裡了,Fasta檔是讀取使用者
10/26 00:41, 11F

10/26 00:45, , 12F
輸入表單傳給cgi開檔存在cgi-bin裡
10/26 00:45, 12F

10/26 00:48, , 13F
我自己感覺好像是cgi沒有使用server端程式的權限,
10/26 00:48, 13F

10/26 00:50, , 14F
我用PRINT印出system的回傳值是0
10/26 00:50, 14F

10/26 01:25, , 15F
各位大大,我找到問題了,我勾取BLASTP以系統管理員權限
10/26 01:25, 15F

10/26 01:25, , 16F
執行,就可以了,謝謝各位
10/26 01:25, 16F
文章代碼(AID): #1IPumE7O (Perl)
文章代碼(AID): #1IPumE7O (Perl)