2015年4月3日 星期五

Linux環境下,thttpd支援cgi遇到的問題

架設好thttpd Server之後,在測試cgi是否能正常運作時遇到了一點點的問題

在多方詢問與請教估狗大神之後,終於有了頭緒。

首先我實驗的網址是我的本機端 http://localhost/cgi-bin/HelloWorld.cgi

總共會遇到的問題可能有三個,下面將一一描述:


1. 首先來看看thttp.conf這個設定檔
#======= thttp.conf ========
# This section overrides defaults
dir=/home/httpd/html
chroot  
user=root
# default = nobody
.....
.....
.....

要使用cgi第一部分要注意的是上面的紅字的部分,這樣的寫法當你要去執上面的網址時
會遇到下面的狀況:













Solution: 修改thttpd.conf請將chroot註解掉,如下所示:
#======= thttp.conf ========
# This section overrides defaults
dir=/home/httpd/html
#chroot  
user=root
# default = nobody
.....
.....
.....



2.第二個會遇到的問題,當你輸入網址之後可能遇到下面的狀況:













Solution: 遇到這個問題請先去修改thttpd.conf,可能原因是 "cgipat=/cgi-bin/"後面必須加個"*" 

正確的內容如下所示:

#======== thttpd.conf =========
# This section overrides defaults
dir=/home/httpd/html
#chroot
user=root
# default = nobody
logfile=/var/log/thttpd.log
pidfile=/var/run/thttpd.pid
# This section _documents_ defaults in effect
port=80
# nosymlink# default = !chroot
# novhost
cgipat=/cgi-bin/*        <======後面加個"*"



3. 第三個會遇到的問題是,當輸入網址後Browser會出現下載cgi檔案的提示,而不是顯示出你要的cgi頁面

Solution: 這個問題是因為你cgi檔案設定的權限有問題,似乎是因為cgi檔案必須要有可執行權限,解決方法是只需用以下指令
# chmod 755 HelloWorld.cgi

權限更改成功之後 終於看到cgi要show的畫面了 :D














總結: cgi網頁有問題時

1. 請修改thttpd.conf如下:
#======== thttpd.conf =========
# This section overrides defaults
dir=/home/httpd/html
#chroot
user=root
# default = nobody
logfile=/var/log/thttpd.log
pidfile=/var/run/thttpd.pid
# This section _documents_ defaults in effect
port=80
# nosymlink# default = !chroot
# novhost
cgipat=/cgi-bin/*   


2.# chmod 755 HelloWorld.cgi


以上~ 




沒有留言:

張貼留言