[PHP] FreeBSD Sphinx 繁體中文全文檢索 on PHP

sphinx 最近想說幫之前替代役單位來把全文檢索的中文部份搞定,所以找了一些全文檢索的 open source,挑了這套網路上評價還不錯的 Sphinx,目前 Sphinx 支援的作業系統如下:

  • Linux 2.4.x, 2.6.x (various distributions)
  • Windows 2000, XP
  • FreeBSD 4.x, 5.x, 6.x
  • NetBSD 1.6, 3.0
  • Solaris 9, 11
  • Mac OS X 雖然上面寫 FreeBSD 只支援到 6.X,但是我測試是在 FreeBSD 7.1-RELEASE-p6 的環境,所以相當 ok 的,底下是我安裝在 FreeBSD 的心得筆記,PHP 官網上面有支援

Search Engine Extensions 的介紹,包含了 mnoGoSearch、Sphinx — Sphinx Client、Swish — Swish Indexing,可以利用 pecl 來安裝 Sphinx,目前版本:0.9.9-rc1。

[Read More]

[FreeBSD] 小技巧:防止 user 查詢觀看其他 user Processes

看了這篇:FreeBSD Prevent Users From Seeing Information About Processes Owned by Other Users,裡面寫到如何防止其他使用者登入 ssh 觀看到其他使用者的一些動作,平常一般使用者可以利用 ps aux 指令關看到所有 Processes 的狀況,包含了系統所有使用者,這篇就是介紹如何關閉使用者查看其他不屬於自己的 Processes,作法有兩種,底下分別介紹,效果是一樣的: 1. 寫入 /etc/sysctl.conf

echo 'security.bsd.see_other_uids=0' >> /etc/sysctl.conf
echo 'security.bsd.see_other_gids=0' >> /etc/sysctl.conf
2. 直接在 command line 執行
sysctl security.bsd.see_other_uids=0
sysctl security.bsd.see_other_gids=0
兩種效果是一樣的,當然可以查詢目前的系統狀況
sysctl -a | grep security

利用 freebsd-update 升級 FreeBSD security patch 安全性

在玩 FreeBSD 系統一定會常常需要升級 security 的 patch,之前寫過一篇手動升級 FreeBSD security patch:FreeBSD 的 security patch 跟 如何 upgrade,那篇寫的內容也很容易瞭解,那現在又有另一種升級方式,就是利用 FreeBSD 內建指令 freebsd-update,這是可以 fetch 或者是 install 和 rollback binary 升級系統,不過這指令只能用在 Release Engineering 的系統上面,例如 FreeBSD 7.1-RELEASE and FreeBSD 7.1-RC1,不可以使用在 FreeBSD 6.2-STABLE 或者是 FreeBSD 7.0-CURRENT 版本上面,那在 DK大神 blog 上面有寫一篇可以升級 PRERELEASE 系統:用 freebsd-update 將 FreeBSD 7.1-PRERELEASE 升級到 7.1-RELEASE,這方法可以騙過 freebsd-update 指令,不過我想本身要對 FreeBSD 很熟阿,不然會遇到很多地雷阿。 基本 OPTIONS 如下:

-b basedir   -- 指定系統掛載根目錄 預設值:/
                (default: /)
-d workdir   -- 檔案暫存的地方
                (default: /var/db/freebsd-update/)
-f conffile  -- 讀取基本設定檔
                (default: /etc/freebsd-update.conf)
-k KEY       -- Trust an RSA key with SHA256 hash of KEY
-r release   -- 指定 Release 版本 (e.g., 6.2-RELEASE)
-s server    -- 指定抓取哪一台伺服器
                (default: update.FreeBSD.org)
-t address   -- 搭配 corn 指定 email,當執行完畢,寄信通知使用者
                (default: root)
[Read More]

[jQuery] 表單取值 radio checkbox select text 驗證表單

最近在專案全面使用 jQuery 來整合後台部份,目前還沒有大量用到 AJAX 的部份,等以後有時間會全部轉換 AJAX 利用 JSON 的部份,其實之前就有寫到一篇用 datatype JSON 的方式來實現 AJAX:[jQuery] AJAX 學習筆記 (一) 如何使用 JSON 驗證使用者表單,大家可以參考看看,不過今天大概寫一下昨天在實做驗證表單取值的一些心得,在設計後台的時候,我把編輯文章跟新增文章的功能做在同一塊,然後利用 jQuery 去改變傳值狀態,利用 hidden 的 mode 欄位來決定是要新增文章還是修改文章

$(document).ready(function() 
{
  $("#add_news_link").click(function(){
    $("#mode").attr("value", "add");
  });
})
[Read More]

[Pear] 利用 Validate 套件驗證 E-mail 多重表單認證

最近都在玩 open source 的程式,方便加速自己開發 PHP 的專案,在申請帳號密碼部份就可以利用 Validate 套件來驗證,以及 email 填寫正確性,可以檢查 MX 或者是 A record 紀錄,還蠻方便的,也可以檢查 multiple 欄位,設計的相當不錯,也有金融相關套件可以驗證 CreditCard,金融套件名稱是 Validate_Finance 裡面的 Validate_Finance_CreditCard 部份,線上也有很多相關說明,可以參考 Validate 線上手冊,目前已經到 0.8.2 (beta),如果使用 Release 版本,請選用 0.8.1,軟體可以在此下載,0.8.2 是在 2009-01-31 Release 出來的,還不錯用,最主要的功能如下

Package to validate various datas. It includes : - numbers (min/max, decimal or not) - email (syntax, domain check, rfc822) - string (predifined type alpha upper and/or lowercase, numeric,…) - date (min, max, rfc822 compliant) - uri (RFC2396) - possibility valid multiple data with a single method call (::multiple)

  1. 驗證各種不同的日期函式
  2. 驗證數字(最小/最大,是否是10進位)
  3. email 驗證(正規語法驗證,check domain name 是否存在,rfc822 驗證)
  4. 字串驗證(正規語法驗證,是否包含數字英文字母,可輸入最長或最短)
  5. url 驗證(遵從 RFC2396 規定)
  6. 多重欄位(multiple data)驗證(可以同時驗證上述功能)
[Read More]

Linux or FreeBSD screen 指令介紹使用

在管理 Linux 或者是 FreeBSD 系統常常用到的指令:screen,一方面如果 pietty 當掉,那您執行的指令升級系統都會繼續在 background 跑,那有時候可能跑的時間很長,這時候當然就要靠 screen 來達成這個目的,當然您也可以用 nohup 的方式來做到此目的,底下就是一些 screen 我常用的一些指令,還蠻方便的 首先如何開啟新的 screen 呢,當然就直接打指令 screen 就可以了,在 FreeBSD 底下開始沒有支援 screen 指令,利用 FreeBSD ports 來安裝

cd /usr/ports/sysutils/screen; make install clean
[Read More]

mydumper 取代 mysqldump 效能

這是我在 gslin 大神 那邊看到的一篇文章:mydumper (取代 mysqldump 的工具),mysqldumper 有平行跟效能方面壓力測試,效果跟時間都壓縮的比 mysqldump 還要快,簡單管理 output 資料,它把 database 每個資料表分別 dump 資料出來寫到檔案,方便觀看檔案資料,不過沒有支援 dump table 的 definitions,所以加速提取 data 寫入到檔案,gslin 大神也把它包進 FreeBSD ports 裡面,在 database/mydumper 這裡。 我想會把這個機制套用到我之前寫的 shell script 裡面:[Linux&FreeBSD] 備份系統資料,MySQL 資料庫,PgSQL 資料庫的自動化 bash shell script 程式,那 mydumper 用法也相當簡單,mydumper –help 就寫的很清楚了,跟 mysqldump 用法差沒多少:

-h, --host               連接到 hostname 伺服器
-u, --user               使用者名稱
-p, --password           使用者密碼
-P, --port               MySQL TCP/IP port 
-B, --database           Database 名稱
-t, --threads            Number of parallel threads
-o, --outputdir          輸出的檔案要存放在哪, 預設 ./export-*/
-c, --compress           gzip 壓縮每個檔案,多花一點時間
-x, --regex              Regular expression for 'db.table' matching
[Read More]

Google App Engine SDK:python 基本教學安裝

Powered by Google App Engine Google App Engine 利用 python 程式語言所組成,可以利用 Google 背後的技術來開發您的 Web application,後端就交給 Google 的強大雲端運算能力,前端就可以利用 SDK 來開發您的 Web 介面,後端儲存可以用 Google Bigtable 及 GFS 的儲存方式,那現在就不多說了,花了一點時間把環境建立起來,遇到一些問題,現在來筆記一下,目前我在 FreeBSD 7.1 Release 來當作 Google App Engine 開發平台,在安裝方面有遇到一些小問題,底下來看看: 在 FreeBSD 安裝方法還蠻簡單的,首先把 python 環境弄好

# cd /usr/ports/lang/python25/
# make install clean
底下這張圖就是安裝好的結果:

GAE (by appleboy46)

[Read More]