網頁

2013年11月4日 星期一

簡體字轉正體中文

在實作 FB Like Button @ OPAC 時,它的簡介的部份是可以應用於圖書館館藏查詢系統,檢索到書目可以自動的帶有一般圖書的簡介,個人是覺得放這個一般書籍的簡介資料會比放傳統 MARC 格式資料來的吸引人。

不過因為所應用的豆瓣 API,它所提供的書目資料有些是簡體版的資料,有些是繁體版的資料,這部份也不知道同仁的想法。所以稍微找看看簡體轉繁體中文有沒有較好的解決方式。

由找到的資料來看,大致上的做法是維護一份轉換字碼對照表,透過代碼表的交換來達成目的。也有人是採用 Google Translate API的作法,但目前 google translate api有些限制,不能達到所要的需求。在找到的資料當中,以 新同文堂 for Web 的做法最為簡單,簡單的幾行javascript 加入後就可以逹到要的效果 DEMO


相關資料:
  1. 新同文堂 中文網頁繁簡轉換
  2. 新同文堂 for Web
  3. mediawiki-zhconverter
  4. 使用 Mediawiki zhconverter 進行 PHP 網頁簡繁互轉 
  5. php 在UTF8編碼下將繁體中文轉換成簡體中文 

DEMO
 

2013年10月25日 星期五

FB Like Button @ OPAC

開 APP 會議時,突然說到 FB Like Button 功能。在當時直覺的反應實作這個的目地性。到底實作出這個的實質效益,所分享的資料只有圖書館編目出的資料可是一點也不吸引人。

回來想想後,能放的東西一定要有書的封面,最好也要有書籍的介紹。

實作的方式其實不難。麻煩的地方在於要將不同的系統給相互的串接起來。

目前實作好的功能,可以在 WebPAC內直接按讚」與分享一些心得訊息貼到自己的Facebook 內與他人分享。在分享的同時,會自動的將書本書名、介紹、封面自動的貼到 Facebook。

相關資料:



2013年9月25日 星期三

Tomcat 安全性如何提升

重點如下:

  1. 降低使用權限
    • tomcat 的權限若不特別調整會是系統服務的權限的身份執行。
    • 在系統內新增一個使用者帳號,這個新增的帳號可以不歸屬於任何的群組,於服務管理器啟動 Tomcat 管理介面。選擇「登錄」選項,將啟動的身份改成這個新增的使用者帳號。(如附圖)
    • 此新增的帳號可以將網路存取使用權限改成拒絕存取、遠端控制取消啟用、用戶端裝置的預設勾選項目全數取消。
    • Tomcat相關的執行檔案的目錄,別忘了要新增這個使用者的帳號權限;有些目錄的權限要開放寫入(如附圖)
    • JRE目錄也需要新增這個使用者的帳號權限。(如附圖)
    • 基本上以上的做法與Apache 的建議相似,也可直接參考此文件中文翻譯)。 
      • 在Apache的實作:後來發現只要在 logs , sessions 與其它需要寫入權限的目錄 (e.g phpids ......),加入這個受限制的使用者的權限後,再到系統 =>服務 =>Apache2(如下圖),將登入的身份改成這個受限制的使用者,重新啟動後即可。
  2. 預設 port 號修改
    •  例如將 port 8080修改為其它 port 號。
  3. 未設定 index.htm的目錄會將所有目錄內的檔案全數呈現
    • 修改web.xml檔案,<param-name>listings</param-name>,確認它是 false 的狀態。這個部份在 Tomcat 6.x 版的預設值是  false 。
  4. 後台管理的帳密修改
    • 基本上因為它的管理介面,這沒有使用到,所以我這是將全部將關於此功能的目錄全部刪除。
  5. 錯誤頁面會主動回報使用版本等參考資訊
    • 修改web.xml files,自訂 404.html ......等頁面。於 web.xml內的 </welcome-file-list>標籤後加入自訂的 404.html(如下) 
    • <error-page>
              <error-code>404</error-code>
              <location>/404.html</location>
          </error-page>
    • 不知幾版開始後,它的 header 就沒有傳遞版本的資訊了,所以自訂 404 等錯誤頁面後, 可以降低此困擾。The server attribute controls the value of the Server HTTP header. The default value of this header for Tomcat 4.1.x, 5.0.x, 5.5.x, 6.0.x and 7.0.x is Apache-Coyote/1.1. This header can provide limited information to both legitimate clients and attackers

其它降低權限時有出現過的狀況:

有一個資料庫很特殊,它需要在工作排程器內設定自動啟動的動作,但降低權限的身份在設定排程時會出現狀況,解決的方式可以參考下方的相關說明。
相關參考資料:


2013年9月17日 星期二

Server 2008 R2 的時間校時

前些天,同仁回報訪客系統的人數入館統計的功能突然失效了。數值全數歸零。當下連上主機查看了 Log,但都沒發生異常。搞了半天才發現到原來主機上的時間是錯誤的。

而程式的運作,在計算人數時,是以取出當下的日期時間來做計算。過了某個時間點(8小時的時間差),因為取出的日期時間已超過正確的今日日期,所以在系統的呈現上,它的數值才會歸零。

探查的原因後,發現該主機是位於 VM內的 guest OS,Guest OS重新開機後會自動去抓取 VM Server 內的 BIOS時間,而這台 VM Server 的時間是不正確的,而要更新這台 VM Server 需要將裡面所有的 Guest OS 的服務全數停止才能做更正的動作。

所以稍微找一下校正時間的相關資料,透過 w32tm.exe 的方式,寫了一支批次檔後再設定主機內的排程處理器,讓它定時的執行校時的工作後就搞定了;按找到的文章來看,其實只要修改機碼的方式達成。


相關資料:

2013年8月28日 星期三

Apache2.4 無痛升級

最近應該會開始陸續著手進行 Apache2.4的升級。

找了一些相關資料與實作上的一些疑難雜症,先註記與記錄起來。有空再來慢慢處理。




後來實作經驗:簡單的註記如右,在 Apache2.4 的版本的設定檔內,有些設定需要重新改寫,基本上直接參考Apache 線上文件即可。 我的做法很簡單,先弄一台通用的設定檔,再來就是利用 httpd.exe -t 檢查語法正不正確。語法沒什麼問題後就連上要更新的主機上,將需要更新的檔案置換,再重新啟動,這樣就完成升級的動作。

MySQL5.6 無痛升級

先收集相關資料,等改天再來升級 MySQL資料庫管理系統。

Upgrading MySQL on Windows:應該做以下步驟即可

  1. 先備份所有的資料庫
  2. 停止 MySQL服務
    • 取消掉系統 mysql 服務: mysqld.exe --remove yourservicename
  3. 將下載下來的壓縮檔解壓縮後覆蓋到 MySQL目錄內,如果要保留原主機內的資料,請記得刪除更新檔內的 /data/* 內的檔案後再行覆蓋。
    • 重新將系統 mysql服務加入:mysqld.exe --install mysql5 (其實我不是很確定這步驟是必須的)
  4. 啟動 MySQL服務
  5. 執行 /bin/mysql_upgrade ,讓它去檢查資料表與相關的升級的動作
  6. 升級完成
my.ini修改:
在 mysql 5.5 升級至 5.6有些語法需要修正:


其它相關參考資料:


搞了半天,一點都不無痛:

最簡單的方式還是利用MySQL所提供的 mysql-installer-community-5.6.13.exe 來做安裝的動作,只要將要放的路徑決定好,再使用它的 UI介面,按介面內的提示安裝,就會自動產生 my.ini 檔案。此時再將舊主機內所備份的SQL備份檔案,將它給 dump回新的 MySQL5.6資料庫就完成了。這樣子就不需再調整舊主機內的 my.ini 的設定,因為如果要做調整就需要一個個去了解那些功能在 5.6版本是已宣告不支援,一個個手動修改。@@

透過 MySQL installer 的安裝方式,很簡單,在這稍做記錄,待往後有空時再來看看是否要升級:

執行 MySQL installer,我的習慣是將程式集中到 /MySQL/ 目錄,將 Installation Path & Data Path 指向要放的目錄 (如圖),再來就依 UI 介面內的指示一一設定上去就可以很迅速的完成安裝的動作了。



















2013年7月31日 星期三

Filezilla FTPS Server

Filezilla FTP Server 也有支援 FTPS。
  • 設定方式,可直接 參考此篇 的說明。
  • 在防火牆需要開通的 port為:20-21,990,5000-5005(視設定而定)。
加強安全性
  • 服務的預設是採用系統服務執行,執行身份的群組歸屬於 SYSTEM。可做以下方式調整。
  • 新增一個服務帳戶(e.g. admin_ftp),將此帳戶歸屬於 guest 群組
  • 到 filezilla Server 的安裝目錄,給予 admin_ftp 帳號需要的權限
  • 到 "服務" 內將 filezilla server 改用 admin_ftp 身份啟動
  • ftp 所分享的目錄也要設定 admin_ftp 需要的權限 (這部份不用另外設定也是可運作的)
相關資料