CGI問答集 (15mb 專用)

    標 題 索 引
01. 可以在 TACOCITY 設置聊天室嗎 ?
02. CGI 程式一定要用 Perl 語言寫嗎 ?
03. CGI 程式執行後出現以下這段訊息 CGIwrap Error: Script is not executable. ?
04. 請問 cgi 程式的路徑問題...
05. 為何會出現下列訊息 CGIwrap Error: System Error: execv() failed ?
06. 如何保密 cgi 程式 ?
07. 有沒有 Guestbook 設定簡易說明 ?
08. 關於 guestbook 的放置目錄 ?

Q : 可以在 TACOCITY 設置聊天室嗎 ?
A : 因為 聊天室, 搜尋程式...都是屬於佔頻寬, 耗系統資源的功能, 基於減輕系統負擔、維持網路順暢的原則,在 TACOCITY 這裡不允許放置聊天室之類的程式, 若是系統發生異常超載的情況, 則工程部會以暫時取消 CGI 的使用權為懲戒, 以免一己之私而侵犯眾人的權益。
若是連結別處的聊天室程式,因不是消耗此邊的資源, 則不在此限制中,謝謝合作!

Q : CGI 程式一定要用 Perl 語言寫嗎 ?
A : 基本上 TACOCITYServerUNIX, 所以並不能用 VB or Windows 上的 C 來做, 而目前適用性最廣的就是 Perl 囉, 或者你可以用 C 寫好, 在同 TACOCITY 的 UNIX 版本中編譯好然後再上傳 !

Q : CGI 程式執行後出現以下這段訊息 CGIwrap Error: Script is not executable. ?
A : 這可能是你的檔案權限設定錯誤所致, 利用 FTP 程式如 : CuteFTP, 選取欲更改權限的程式檔案, 然後在 Command 下找到 Change file attributes 在選單中的 Manual 後填入 700 即可, 如此既可改變檔案的存取權限, 讓此檔案可被執行, 這樣說你懂了嗎?

請特別注意, 為了安全性問題, cgi程式的檔案權限請設定為 700

如果你是用 Ws_ftp95 的話, 你可以用光棒移至你的檔案, 按 Mouse 右鍵, 將出一現一項 Chmod(unix), 選其項, 並設為可讀可寫, 如此即可.


Q : 請問 cgi 程式的路徑問題...
A : 舉個實際的個案 :
1. 我只須將 "*.pl" 檔放到 "cgi-bin" 的目錄下, 或者亦須將 "*.htm及*.txt"(perl的相對應檔案) 放到 "cgi-bin" 的目錄下?
2. 若 "*.htm及*.txt" 亦須放到 "cgi-bin" 的目錄下, 是否須為其開一個子目錄 (由於我打算使用超過一個 cgi 程式) ?
3. 在首頁中我該如何連接 links.htm 呢? (是 http://tacocity.com.tw/我的帳號/links.htm 或 /home/city1/我的帳號/www/cgi-bin/links/links.htm 還是要連到其他的地方)
4. 在 links.htm 中我該如何設定 links.pl 的位置呢? (http://tacocity.com.tw/cgi-bin/cgiwrap/我的帳號/links.pl 或 http://tacocity.com.tw/我的帳號/cgi-bin/links.pl) 還是該設定到其他的地方)
5. 是否我將程式 (*.pl) 或文件 (*.htm或*.txt) upload 到 cgi-bin 的目錄下, 系統是否會 copy 到其他地方? 若是如此我將來是否能夠對檔案做修改或移除呢? (我之所以沒有先 upload 測試, 就是由於這個理由, 擔心浪費網路資源)

詳細說明如下 :
1. 呼叫 Perl 的 html 檔, 可以在任何目錄, 只是要注意你所呼叫 cgi 的路徑.
2. Perl 的檔案, 一定要放在 cgi-bin 的目錄下.
3. 頁面連結語法應是 http://tacocity.com.tw/你的帳號/links.htm, 並在 links.htm 裡面寫入 Perl 的完整路徑 http://tacocity.com.tw/cgi-bin/cgiwrap/你的帳號/links.pl, 這樣就正確啦 !
4. 你呼叫 Perl 程式的路徑應為 http://tacocity.com.tw/cgi-bin/cgiwrap/你的帳號/links.pl
5. 不會, 由於本市只是提供 cgi 空間的使用權, 並不會去更動你的 cgi 程式, 故可放心.

以上的問題你可以參考 TacoCity 的 CGI 設定說明,不過有一個地方需要注意,
-----------------------------------------------------------------------------
$baseurl="http://tacocity.com.tw/你的帳號/cgi-bin";
設定留言板檔案所在位置連結目錄
-----------------------------------------------------------------------------
這一段,不要管他,請根據你的 CGI 程式說明設定,你要放在哪一目錄都行, 其他原則上以我前一篇的說明為準,還有一點,最重要的一點,CGI 都 upload 完以後, 你的 CGI 檔案屬性必須設定所有人都可讀取、執行,然後在 CGI 申請設定的首頁上再登錄一次, 記得每 upload 新的程式就登錄一次!
要 call cgi => (http://tacocity.com.tw/cgi-bin/cgiwrap/你的帳號/links.pl)
把握幾個原則,檔案的屬性要適當、cgi 放在 /cgi-bin/ 中、其他看說明!


Q : 為何會出現下列訊息 CGIwrap Error: System Error: execv() failed ?
A : 呵呵......原來問題是出在.......*.pl.....上傳時, 要用 ASCII模式.

Q : 如何保密 cgi 程式 ?
A : 只要在 /cgi-bin/ 目錄下, 建立一個 index.htm 即可

Q : 有沒有 Guestbook 設定簡易說明 ?
A : GUESTBOOK.PL - This is the Perl script that actually writes new entries to files and returns the entry to the user. This file will need to be placed in the cgi-bin of your server and chmoded to a+rx. There are a few things that need to be changed in this file:

# Set Variables
$guestbookurl = "http://tacocity.com.tw/你的帳號/guestbook.html"
說明 :
此處填上 guestbook.html 的 URL ,如果你在你的帳號內建了另外的 目錄 (guestbook) 擺 guestbook.html 的話,例如 /guestbook/guestbook.html 那麼你的 guestbook 的 URL 便是 :
"http://tacocity.com.tw/你的帳號/guestbook/guestbook.html"

$guestbookreal = "/-----/----/guestbook.html"
說明 :
--------------^^^^這是主機要寫入留言資料,所以要知道檔案在主機的哪一個路徑, 注意是 guestbook.html 在主機上的 real location ,也就是實際的路徑,不是你 login 進 FTP 的目錄, 這必須要市長提供才行。

$guestlog = "同 $guestbookreal 的路徑"
說明 :
這是記錄檔。

$cgiurl = http://tacocity.com.tw/cgi-bin/cgiwrap/你的帳號/guestbook.pl
說明 :
這是你的 CGI 程式的 URL ,你看出來了嗎,雖然你是放在 "你的目錄/www/cgi-bin/" 內,但 URL 不同。 你的首頁應該呼叫這個 URL,如果有錯誤的話,請向市長查詢!

p.s. "guestbook.pl" 的第一行參考 TacoCity 的 CGI 設定說明,不然無法執行!
看到這裡,如果你已經瞭解如何設定的話,那就好;不然的話給你個建議,你還是不要玩 CGI 了, 因為CGI 也不只是這樣就可以了,一些設定、修改都是需要一些 "電腦常識" 的,不過沒有常識沒關係, 那麼知識是一定要具備的,什麼知識呢,就是知道 Internet 是幹嘛用的,嘿嘿,真的很多人不知道! (many resources) 一堆人在要 CGI, guestbook。
請記得,你要 "用" 一樣東西的時候請閱讀 "使用說明",guestbook 壓縮檔中的 readme 已經寫得很清楚了, 上面是翻譯再加上一些比較容易搞錯及適合 TACOCITY 的設定而已!


Q : 關於 guestbook 的放置目錄 ?
A : 舉個實際的個案 :
我現在把 gbook.pl 放到 /cgi-bin/ 下也改過屬性了 chomd 755 然後 addguest.html, gbook.html and guestlog.html 要放哪? 放在我的原始帳號下嗎? 還是要另建目錄? 我看有人的 guestbook 的 url 是 tacocity.com.tw/使用者帳號/cgi-bin/xxxx.html 搞不懂說? 為何不是在 tacocity.com.tw/使用者帳號/下? 而多出一個 /cgi-bin/ ??

詳細說明如下 :
沒錯, 首先要在你的帳號下開一個資料夾, 取名為 cgi-bin 然後所有 CGI 程式全丟到那裡就 OK 了, 附帶一提, "所有 CGI 的相關程式都丟到 cgi-bin 底下, 包括 addguest.html, gbook.html and guestlog.html 或是在 CGI 中出現的圖檔,
所以說 addguest.htm, gbook.htm 等的 realpath 跟 gbook.pl 是一樣的, 因為全部都是在 "http://tacocity.com.tw/你的帳號/cgi-bin/留言板名稱.html" 裡執行的, 所以所有 "留言板.html" 有用到的東西都放在 cgi-bin 裡面.





網站版權所有 © 1996 TacoMart Inc