2009年5月19日 星期二

在Linux環境下以PHP連結SQL Server

若在Windows環境下安裝PHP, 通常可以很輕鬆的連結SQL Server, 但在Linux環境下就需要額外安裝FreeTDS, 詳細安裝步驟可以參考這篇這篇, 我也順便再記錄一次操作步驟吧...

1) 安裝FreeTDS:
  • 先下載FreeTDS的source,
  • 編譯參數: --prefix=/usr/local/freetds --enable-msdblib
  • 完成安裝後, 修改/etc/ld.so.conf, 加入/usr/local/freetds/lib; 以ldconfig重新載入函式
2) 修改/usr/local/freetds/etc/freetds.conf:
[foo]
host = your.mssql.server.ip
port = 1433
client charset = UTF-8 # 以UTF-8編碼方式連線
tds version = 8.0
#tds version: 4.2 (適用 MS SQL Server 6.x); 7.0 (適用 7.x); 8.0 (適用 2000/2005)
3) 測試連線
  • # /usr/local/freetds/bin/tsql -S foo -U sa
  • 1> use my_db
  • 2> select * from my_table
  • 3> go
4) 重新編譯PHP
  • 新增編譯參數: --with-mssql=/usr/local/freetds

在存取SQL Server 2005時, 若遇到欄位型態為uniqueidentifier, PHP無法直接取得其欄位值, 需在SQL查詢以SELECT CONVERT(VARCHAR(36), field_name) AS 'field_name'轉換型態才可使用, 而要新增uniqueidentifier類型的欄位時, 須以SQL Server內建之NewID()函式產生唯一的GUID

2009年5月12日 星期二

在Linux環境安裝Subversion

最近由於工作需要, 必須在Linux下安裝版本控制系統, 經過比較之後, 雖然Subversion(SVN)在commit的速度不如Git, 而且branch的管理也較差, 但用順手後也就習慣了, 在此紀錄一下安裝過程...
在Linux環境下先抓取Apache和SVN的source後編譯, 由於習慣使用webdav的方式透過http更新, 因此在Apache編譯前要先設定
# ./configure --enable-dav --enable-so --enable-maintainer-mode

根據Apache2.0x的預設安裝路徑, 繼續SVN的編譯
# ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr/bin/

在安裝SVN的過程中有時會出現'configure: error: Subversion requires SQLite'的錯誤訊息, 這時就須先下載sqlite-amalgamation, 解開壓縮檔後將sqlite3.c複製到subversion-x.x.x/sqlite-amalgamation的目錄下再行安裝,

安裝完成後開始建立Repository, 注意不要建立在web server文件下的目錄,
# svnadmin create /var/svn

有時也會遇到'txn-current-lock': Permission denied的問題, 就必須修改權限給Apache的使用群組(可見httpd.conf)
# chown -R daemon:daemon /var/svn

修改httpd.conf設定,
# vim /usr/local/apache2/conf/httpd.conf
[add]
<location /myprj>
Dav svn
SVNPath /var/svn/myprj
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /usr/local/apache2/conf/auth-file
Require valid-user
<//Location>
[/add]

加上Apache基本認證
# /usr/local/apache2/bin/htpasswd -c /usr/local/apache2/conf/auth-file USERNAME

確認是否成功, 重新啟動Apache
# /usr/local/apache2/bin/apachectl restart

開啟瀏覽器輸入以下網址
http://127.0.0.1/myprj

如果在登入帳號密碼後看到下列訊息, 表示成功安裝以webdav存取的的svn server
myprj - Revision 0: /

進一步的設定可參考Subversion系統, Subversion FAQVersion Control with Subversion, 而在Window環境下安裝可參考這裡