unico diary system 架設說明書
for Ver.2.1.0 (1998/04/13 首次發表. 2002/05/31 最後更新. 2002/08/02 中文化完成.)
特色
- 這個程式有兩個主要用途:簡單日記本及更新記錄的記事本。
- 非常容易使用:進入管理模式後,除了可以寫入記事內容,亦可以輕鬆的修改及刪除過去的記事內容。
- 隨時可以套用不同的面板,改變版面設計輕而易舉。
- 設置難易程度是初級至中級。
目錄
u_diary.cgi 的設定
如果您看到一些不明白的設定,最好不要修改它,只要保留為預設值就好。
建議您使用如 EmEditor 或 EditPlus 等的純文字編輯器來修改原始碼內容。
#!/usr/bin/perl
Perl 路徑的設定。
不同的伺服器可能會有不同的路徑,請向您的主機提供者查詢這個設定值。
然而,一般的 Perl 路徑都是位於「/usr/bin/perl」或「/usr/local/bin/perl」。
必須設定的項目
$script = './u_diary.cgi';
- 主執行檔的名稱。
$css = './unico.css';
- 管理模式等地方使用的 CSS 樣式表。
$logfile = './u_diary.dat';
- 儲存記事內容的記錄檔。
$template = './template.html';
- 顯示記事內容專用的樣板。
以上的路徑設定均可使用絕對路徑或相對路徑。
$password = 'hamchans';
- 管理者專用密碼。進入管理模式(以進行記事內容的新增、編輯及刪除動作)的時候,必須輸入這個管理者密碼。第一次執行時必須修改這個設定值。
個人喜好設定
$d_max = 10;
- 設定每一頁可顯示多少件記事。
$max = 50;
- 設定記錄檔可保留記事內容之最大件數。只要記事內容的數目超過這個數值,最舊的記事內容便會自動刪除。
$link = 'on';
- 如果記事內容包含網址或電子郵件位址,您可以在這裡設為 on 即可進行自動連結,方便瀏覽者點選位址。設為 off 可關掉這個功能。
$target = ' target="_blank"';
- 使用自動連結時,設定連結的目標框架,一般為 _blank (開新視窗)。
$link_max = 40;
- 如果您在記事內容輸入了一些比較長的網址,您可以在這裡設定一個數值用來限制網址顯示出來的長度。
以上述的 $link_max = 40; $target = ' target="_blank"'; 為例子:
http://www.azworks.org/xxx/yyy/zzz.cgi?parame=data
將會轉換成↓
<a href="http://www.azworks.org/xxx/yyy/zzz.cgi?parame=data" target="_blank">http://www.azworks.org/xxx/yyy/zzz.cgi?p...</a>
這個比較短的模樣。
日期及時間的顯示方式
$date ='%Y/%n/%j (%D)';
您可以參考以下這個表格列出來的參數,根據個人喜好修改日期及時間格式:
參數 値 格式 例子 %Y 年 4位數字 2002 %y 年 2位數字 02 %M 月 文字形式(使用 @month 設定) Jul %m 月 2位數字 07 %n 月 省略前置零位 7 %d 日 2位數字 06 %j 日 省略前置零位 6 %D 星期幾 文字形式(使用 @week 設定) 星期六 %a 上/下午 文字形式(使用 @m 設定) AM %h 時 數字(12小時制) 02 %H 時 數字(24小時制) 17 %g 時 省略前置零位(12小時制) 2 %G 時 省略前置零位(24小時制) 17 %I 分 數字 03 %i 分 省略前置零位 3 %S 秒 數字 07 %s 秒 省略前置零位 7
@month = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
- 月(%M)。順次序設定1∼12月的文字形式。
@week = ('星期日','星期一','星期二','星期三','星期四','星期五','星期六');
- 星期幾(%D)。順次序設定星期日∼六的文字形式。
@m = ('AM','PM');
- 上午/下午(%a)
安全性設定
@tag = ('b','br','font','img','span');
- 設定可用的 HTML 語法,以「'」括起來,以「,」分隔,不要加入 < 或 > 記號。完全禁止 HTML 語法可以這樣設:
@tag = ();
$style = 'off';
- 可以使用樣式設定的 HTML 語法如 style,class,id 嗎?(on/off)
$jscript = 'off';
- 可以使用 JavaScript 的語法(例如 onClick)嗎?(on/off)
$max_length = 65535;
- 記事內容可以輸入位元組(Byte)的最大值,設成 0 就表示不限制。
其他設定
$method = 'post';
- 表單送出方式(FORM METHOD)的屬性設定(通常為 POST)
$form_html = './form.txt';
- 管理模式專用的外掛表單檔案。不同面板可能會使用不同的外掛表單。關於外掛表單的詳細內容請參考 樣板文件格式 這個檔案。
$tz = 8;
- 時區設定(例:台灣=8 日本=9)
檔案上傳注意事項
緊記使用 FTP 程式上傳文字檔案(如 .cgi,.dat,.html)的時候,必須使用ASCII(純文字)模式上傳,同時也需要根據不同檔案類型而設定不同的檔案權限值。以下就是每個主要檔案的權限值的建議設法,但這些設定值不一定每個伺服器主機都合用,您可能需要自行修改為符合該個伺服器主機的設定值:
- [u_diary] (711 或 755) 程式資料夾,以 u_diary 為例
- u_diary.cgi (700 或 705 或 755) 主執行檔
- u_diary.dat (600 或 606 或 666) 記錄檔
- template.html (644) 顯示記事內容專用的樣板,一般都不用改權限值
- unico.css (644) CSS 樣式表,一般都不用改權限值
管理模式使用方法
您可以在瀏覽器的網址列直接輸入「 http://程式資料夾/unico.cgi?action=admin 」這個網址,然後在提示框輸入管理者密碼($password),就可以進入下圖所示的管理模式:
您可以把當天的日記或記事內容寫在頁面最上方的文字輸入框。如果要對過去的記事內容作出修改,只要在下方找出您想要修改的記事內容部份,在「記事內容」的文字輸入框編輯內容,然後在這個表格下面的下拉清單中選擇「編輯此筆記錄」再按下去「執行」按鈕,即可完成編輯記事內容的程序;如果您在下拉清單中選擇「刪除此筆記錄」,就可以刪除這段記事內容,但要注意的是刪除記事內容之前要仔細考慮清楚,因為刪除了的記事內容是無法復原的。
常見問答集
當您設好了所有檔案的權限值之後,請測試一下程式是否能夠安全無誤地執行,先嘗試寫一些東西進去,然後看一看出來的結果。
如果您看完了這個問答集,仍然找不到您想要的答案,您可以寫信給原作者 (azuna@azworks.org) 或中文化作者 (kxxk@so-net.com.hk),亦可以連到我們的網站 az* (日文/原作者) 或 天真的驚直 (繁體中文/中文化作者),在程式支援留言板或相關討論區提出。惟因為來信及留言實在太多,我們可能無法對每一個問題都作出即時的回應。
CGI 跟一般的網頁檔案有何分別?是否需要上傳到支援 CGI 程式執行的伺服器主機才能夠執行?
CGI 是 Perl 語言的一種,有別於一般的 HTML 檔案,它需要一個 Perl 編繹器和一些程式庫來運作,只有存放在支援 CGI 程式執行的伺服器主機才能夠正常執行。HyperMart, Virtual Avenue, Netfirms, tok2 和亞卓市等等,這些都是支援 CGI 程式執行的伺服器主機提供者。
上傳的時候,請確保程式所需的檔案都包括在內,如 u_diary.cgi, u_diary.dat, template.html,缺一不可。但是其他的檔案如 unico.css, form.txt 與及所有圖檔,可能會因應不同面板的設計而有所差異。在套用面板的時候,請檢查一下 template.html 裡面所呼叫的所有檔案是否都已經包含在上傳清單之列。
頁面的圖檔為何顯示不出來?
因為隨壓縮檔附上的範例圖檔都是 PNG (Portable Network Graphics) 格式,並不是所有版本的瀏覽器都有支援及能夠正常顯示這種格式的圖檔,建議您更新瀏覽器的版本。
此外,有些伺服器主機如 Netfirms,基於安全理由而對於 CGI 的架設作出一些限制,就是除了執行檔(.cgi)和讀寫檔(.dat)以外的其他檔案(例如圖檔),一概不能夠存放在 cgi-bin 這個資料夾,只可以存放在 cgi-bin 以外的地方,同時亦需要對主執行檔關於圖檔路徑的所有設定作出適當修改,這樣圖檔才能夠正常地顯示。
記事內容的文字為何不能自動換行?頁面的美感都給破壞了!
如果您使用隨壓縮檔附上的樣板文件 template.html 來顯示記事內容,所有的全形中文字(或其他雙字節字元),在段落內換行方面應該沒有問題;除非您的瀏覽器版本太舊,對於雙字節字元的兼容性不太好,您就需要在每個全形字元之間加入一個半形的空白,但還是建議您盡快升級瀏覽器。如果您輸入了一個很長的英文單字,長度比頁面所能容納的還要長,那麼在顯示記事內容時就當然無法換行啦!
然而,如果您輸入的是一個很長的網址,卻沒有在主執行檔內設定網址的長度上限 ($link_max),由於網址是一串相連在一起的字元所組成,中間是不能夠插入換行碼的,這一點就要特別注意。
為何安裝程式後卻出現如「500 Server Error」、「找不到網頁」之類的錯誤訊息?
這些都是 CGI 無法執行的訊息,出現的原因有很多,但一般來說,您可以在下面點選內容而找到答案:
- 存放檔案的地方並不支援 CGI 程式執行。
- 您已經了解存放檔案的伺服器主機是否真的支援 CGI 程式執行嗎?請先向您的伺服器主機提供者查詢一下。
- Perl 路徑設定不正確。
- 一般的伺服器主機都可以使用預設的 Perl 路徑 (/usr/bin/perl) 來執行程式。但是這個設定並不一定適用於所有伺服器,您可以嘗試把主執行檔第一行的 Perl 路徑設定改為「#!/usr/local/bin/perl」。同時亦要留意在路徑前面是否已經加上「#!」。
- Perl 路徑所指定的版本太舊了。
- 一般而言,這個程式可以在普通支援 Perl 程式執行的環境下運作,但也可能有例外的,譬如您的伺服器主機採用更新版本的 Perl5 作為編繹器。您可以嘗試把 Perl 路徑設定改為「#!/usr/local/bin/perl5」。
- 檔案權限值還沒有設定妥當。
- 請細讀一下 檔案上傳注意事項 來針對每一個檔案修改檔案權限值。
- 樣板文件的設定有問題。
- 如果您使用預設的樣板文件 (template.html) 來顯示記事內容就應該沒有問題。自行製作樣板來改變版面設計者,請參考 樣板文件格式 來設定 template.html 這個檔案的內容。
- 上傳檔案的時候沒有使用 ASCII(純文字) 模式。
- 除非您是利用 ASCII(純文字) 模式來上傳副檔名為 .cgi 的主執行檔,否則程式很可能就是無法正常執行。因為如果您用 Binary(二進位) 模式來上傳的話,原始檔的換行碼是會被轉換過。不同的 FTP 軟體對於 ASCII 文件的定義也有差異,請仔細驗證一下。
為何在套用某些面板後不能進入管理模式?
這可能是因為面板的設計所需,並未把進入管理模式的連結加進去樣板文件裡面。您可以在瀏覽器的網址列直接輸入「 http://程式資料夾/u_diary.cgi?action=admin 」這個網址後按一下 ENTER,然後將這個網址加到「我的最愛」,這樣以後要進入管理模式便方便得多了。