2009年8月15日 星期六

Railo免安裝版-Railo Express

不知道Railo?先看這一篇"認識Railo"

寫這篇時的版本是 3.1.1

下載 railo-express 的zip壓縮檔後,將它解壓縮。
注意該資料夾下有兩個檔案 start.batstop.bat,這是啟動與停止。一般網頁的服務位址阜(port,也有人說窗口阜)在 80 ,預設的情況下瀏覽器瀏覽網頁時,若不指定port則都是使用 port 80 連線。因為 railo-express 屬於環境測試使用,為了避免與本機上IIS(若有安裝IIS,其預設 port 就是 80)衝突,所以使用了別的 port來啟動服務。它預設的 port 是 8888。

若你想修改啟動 port 位置,請用記事本開啟 server.xml (與 start.bat 同資料夾下),找到底下指令:


<Set name="port">
<SystemProperty name="jetty.port" default="8888"/></Set>
<Set name="maxIdleTime">30000</Set>
<Set name="Acceptors">2</Set>
<Set name="confidentialPort">8443</Set>


2009年8月14日 星期五

什麼是CFML

CFML 是一種可程式化的網頁標籤語法

只要你學過HTML就應該知道 HTML 的語法就是一種網頁標籤語法,透過標籤語法可以讓瀏覽器知道要如何將網頁內容呈現給使用者,通常標籤語法都是被包在 <>之間,例如:<hr />就是告訴瀏覽器畫出一條水平線。

所以可知網頁標籤語法是給瀏覽器處理的,而可程式化又是什麼意思?

一般的HTML檔案內容當你設計好時,它就是固定內容,每次讀取都是一樣的內容,因此你需要因應使用者輸入需要而有畫面變化時,就需要重新設計一個HTML檔案。可是當有某種需求表單會有10種以上的反應的話,你就有可能要設計出11種樣版HTML檔案,最慘的是,若是這11種樣版大致上都需要一樣的版面時,以後只要有一個版面更新,那剩下的10個HTML檔案都要一並更新。

最害怕這種情況的,應該就屬網頁美工人員了,因為網頁美工排版動用到的標籤元素非常的多,而且很複雜,若是每次修改個板面就要一並修改數個相關檔案的話,那肯定會累翻,而且效率非常差。

也許有人使用 javascript (以後通稱 js )來解決,這也是一個方法,但是 js 有其先天的限制,無法與server進行溝通,例如資料庫連線。它只能在瀏覽器端處理,例如:輸入字元長度檢查、版面部分變化等。

較大變化異動的版面若使用 js 來做會導致內容過度複雜,難以維護,執行速度不佳等等,所以才說這是網頁美工人員的惡夢。

可程式化標籤是一種崁入式標籤,它可以與一般HTML標籤並存在同一個網頁檔案中,像是CFML的<cfoutput></cfoutput>、<cfset x=" 1">等,並不會和HTML標籤元素衝突,因此在大型的網頁排版軟體中,像是Dreamwaver上,都可以正常顯示美術編輯的效果。

可程式化的優點在於隱藏資訊,像是CFML的檔案(*.cfm)裡面就是HTML + CFML,在瀏覽器像伺服器請求這樣的檔案時,cfm裡面的CFML都會被伺服器處理過並拿走,只剩下標準的HTML,所以瀏覽器端完全不會看到CFML的標籤,版面也容易維持。

如同前面提到:如果一個網頁表單輸入畫面有10種回應頁面樣式的話,使用CFML處理也許只要一個網頁就可以搞定,美編人員可以不用耗費太多的時間在於相關檔案的維護與同步性。

○HTML標籤參考這裡
○CFML標籤種類看這裡

上一篇:架設自己的伺服器

2009年8月13日 星期四

架設自己的伺服器

好了,來說說怎麼讓CFML怎麼運作吧。

雖然CFML是ColdFusion的程式語言,但是ColdFusion現在是Adobe的產品之一。跟Adobe打過交道的人都知道,Adobe不好惹啊,而且一般人對它的價碼敬而遠之。所以在台灣用的人真的不多,因為台灣大多是中小企業啊。

介紹一下Railo

但是學習過CFML的人都了解它是個好物,缺點就是付出的成本較高昂(就是要買一套Adobe ColdFusion)。但國外早期有不少人學CFML,後因Allaire被Adobe收購,原本的使用者因故改轉到PHP上,但是當時的PHP極度不穩定,導致不少損失。因此改尋找新的方案下找到了Railo(聽說當初還是個學生的專題研究,其名稱原是Ryhlo,是星艦迷航StarTreck Enterprise中的一隻外星狗的名字)。

至於認識的人都知道目前也有其他伺服器套件支援CFML如:BlueDragon、Smith等,但是敢號稱比原廠(指Adobe ColdFusion)更快的就不多了。

而Railo是一個伺服器軟體套件,也就是說你的電腦如果沒有安裝IIS之類的服務的話,它可以獨立執行成為一個 Http Server;而如果你有IIS的話,它也有外掛套件,讓你的IIS可以支援CFML的編譯,很重要的是:
它支援ColdFusion 8的語法,而且是商業版的,而且是免費的。

剛看到時,有點不太相信,不過真的是佛心來著的啊...

解決了一直以來,頭痛的版權採購問題。
當然,外面也有課程如 這個 在教學的。

如果要自己動手安裝的話可以去官方下載網站先下載較新的版本,裡面有很多版本的選擇。

首先,要注意Railo有兩個版本還有各類作業平台:

一個是Express版本,功能與Server版相同,這個版本主要是測試用,因為不用安裝,如果你的Server本身有安裝其他服務,怕執行Railo會導致運作不正常的話,可以先用這個版本,這個版本的特點就是它是綠色軟體,解壓縮後可以看到其資料夾中有StartStop兩個批次檔,直接執行Start就可以,但是缺點就是畫面會出現DOS視窗不可以關閉,若關閉DOS視窗會導致服務也關了(正常停止服務要執行STOP那個批次檔)

第二個是Server版,這個版本就是會安裝到service中的版本,但是這個版本有EXE和ZIP兩種形式,EXE為自動安裝程式,直接執行即可安裝。而ZIP為壓縮檔案,先解壓縮(與Express版相同)然後執行該資料夾中的install-service批次檔,你就可以看到服務裡面多了Railo 1.0 Server的項目,它可以隨Windows自動啟動。但是個人經驗是EXE的版本在安裝到Windows 2000後會有一些問題,目前原因不明;但是ZIP版執行卻不會有問題。

不過因為個人使用的是Windows XP和2003,所以其他的版本各位就要自己試試看了。

Server Zip版的裡面有個Setup.exe的程式,那是用來設定給外部服務器支援用的,例如你已經安裝了Apache或是IIS,而且已經正在使用無法任意移除,利用Setup程式將自己的servlet提供給Apache或是IIS使用,使得這些服務器能夠認識並解析執行CFML的cfm檔案。

關於Setup.exe的設定,請參考 http://www.caucho.com/resin-3.0/install/install.xtp

上一篇:網頁運作概念
下一篇:什麼是CFML
另篇:Railo免安裝版-Railo Express
另篇:Railo免安裝 Server 版

網頁運作概念

基本上,網頁(HTTP)的運作方式其實並不難,只要大致上了解的它的運作方式,其他的都是增加上去的擴充功能。

你可以想像你的瀏覽器是一個餐廳的服務生,而你正在餐廳,餐廳的廚師是網頁伺服器,你想要看的網頁就是餐點。

最簡單的方式就是點一客牛排。
1.你會先跟服務生說:我要點一客牛排。
2.服務生收到您的要求,然後去跟廚師說:客人要一客牛排(Request)。
3.廚師做好牛排,交給服務生(Response)。
4.服務生將牛排交給你。

這個過程就是最簡單的網路資訊交易過程,按照上述的順序解釋如下:
1.你在瀏覽器上輸入了網址(例如:http://www.hostname.com)。
2.你按下送出(submit)後,瀏覽器將要求(Request)送到伺服器(Server)。
3.伺服器回應(Response)給瀏覽器需要的網頁資料。
4.瀏覽器將網頁資料呈現在你眼前。

很簡單吧。

當然上面是基本概念,其中當然多了幾道"加工"的動作:

1.廚師要將材料配合做出牛排 -> 伺服器端會將網頁中的指令翻譯成瀏覽器可用的HTML標籤語法。(多數標準的htm、html檔案通常不會經過伺服器處理,因為這些檔案內容都是標準HTML標籤語言,由客戶端瀏覽器直接處理即可)

2.服務生通常不會直接將牛排交給客戶通常會加個餐巾、餐具等等 -> 瀏覽器會將收到的HTML標籤繪製成漂亮的畫面呈現在眼前

所以,依照運作的方式大致上網頁標籤/程式碼就可以分成3大類:

一、瀏覽器語言:標準的HTML標籤、CSS標籤,這類標籤語言是最基本的網頁構成程式碼,主要由瀏覽器依照其指定的描述去顯示繪製網頁呈現在眼前,但是這類的標籤語言大部分只有呈現畫面和簡單的輸入能力,互動效果比較少。

二、javascript、vbscript等類:相信很多人都聽過,可是常常搞混(如java和javascript),這種程式語言稱為瀏覽器語言,主要的目的是提供給瀏覽器除了HTML標籤外的互動能力(例如常見的網頁上的時鐘等等),屬於輔助性質的程式語言。

三、伺服器語言:網頁伺服器會先處理過具有標籤語言或程式碼的網頁檔案,再回應給瀏覽器顯示,所以若要從瀏覽器看到原始碼是不太可能的,因為都已經被轉換/執行過了。例如常聽到的PHP、JSP、JAVA、ASP、dot Net(aspx)...(繁不及備載),而CFML(ColdFusion)即是屬於此類。

從上述說明,你應該了解到CFML是用來製作伺服器端網頁的標籤程式碼。

所以你要了解,如果你的網頁(部落格不算)是架設在別人的伺服器中的話,那就得看提供伺服器服務的網路商使用的是何種語言了,不過基於安全考量,通常網路商不會讓你製作具有伺服器語言的程式網頁,最常見可用的都是標準的HTML與javascript與CSS而已。

下一篇:架設自己的伺服器

2009年8月12日 星期三

coldfusion恐慌症

接任主管的職務通常都會遇到需要自己克服的事情,而且別人也無法幫你的,還有的同事也在準備看好戲的,總之,就是如此啦。

雖然今天要講的不是什麼新聞了,但是卻是去年10月到今年3月間讓我極度傷腦筋的問題,那就是--ColdFusion,也許使用過的人大概不會覺得有啥問題的,重點就是我完全沒用過這套軟體啊 Orz。

偏偏公司的主網頁又是使用這軟體開發的,後來遇到網頁版面需要改版的問題,需要進行大規模的修改,但是前任主管才沒多久前將CF server升級過,聽說花了不少錢。

心想,半年前去補習過.NET,所以本來打算使用.NET開發,但是公司經費核准不下來(我想應該是老闆覺得才花過錢的為什麼又要再花一次錢吧),若用JSP或是JAVA又不是那麼熟悉,而且公司另一部主機使用JSP+Apache的經驗實在不愉快,讓我對純JAVA的東西不太想碰。

而且最大的問題是---為什麼國內沒有任何ColdFusion的書籍啊!!!!!
我可是找遍國內網路書店,台中市各大實體書店,包含了舊書攤!!!

後來老闆已經開始質疑我的能力了,對於網頁更新頗有微詞。

其實找書找得很累,加上挫折不斷本來就已經有點心灰意冷,所以3月開始不再找書了,開始往網路論壇去找,因為網路論壇沒有由淺入深的規劃方式,都是片面的技術性討論,而且有的技術性太深,根本看不懂。

但是為了突破,只好每天下班時到處去爬文,好在對岸的論壇幫上了點忙,閱讀起來幾較不吃力,但是對岸的相關文章也太淺太少,部分只好回去看英文的論壇再去對照相關用法。

台灣也有少部份論壇有,但也不普及,太多細節性的內容都不足,很多得自己TRY。
在胼手胝足的努力下,漸漸看懂CFML的語言特性了,不過大多支援的屬性還是很類似JAVA,畢竟,CF也是由JAVA開發出來的。不過,當了解CFML的特性之後,也發現其實他在設計上還算容易上手的,發現它學習起來門檻其實不高,只是需要觀念導引,但是當時就是缺乏有能帶進門的書籍或是參考資料,算是有點可惜。

有時間的話,可以將自己的學習內容寫上來,提供給需要的人觀看。

2009-08-13 update --->
我想ColdFusion在台灣現在比較不那麼流行,但是相較於.NET、JAVA有著比較親和的撰寫特性,學習跟開發都很快可以上手,感覺上就像powerbuilder開發MIS的資料處理那樣的方便,這是後來我一直使用CF的原因。

○CFML = ColdFusion Markup Language
○關於ColdFusion歷史可以參考 http://zh.wikipedia.org/w/index.php?title=ColdFusion&variant=zh-tw
○CFML線上參考書 http://livedocs.adobe.com/coldfusion/6.1/htmldocs/part_cfm.htm