2010年10月15日 星期五

AppServ 更新 PHP 版本為 5.2.14

AppServ 安裝路徑:D:\AppServ
OS:Windows XP

將 AppServ 2.5.10 的 PHP 5.2.6 升級為 PHP 5.2.14 步驟:

0. 將 Apache 和 MySQL stop。

1. 至 PHP for Windows 下載 VC6 x86 Thread Safe *1 的 zip 版本。

2. 將 D:\AppServ\php5改名為 php526

3. 將 php-5.2.14-Win32-VC6-x86.zip 解壓縮到 D:\AppServ\php5

4. 將 php.ini-dist 改為 php.ini

5. 對照 PHP5.2.6設定的 php.ini 項目來設定 PHP 5.2.14 的 php.ini *2

6. 將設定好的 php.ini 移到 C:\WINDOWS 內。

7. 如果有開啟 extension=php_mcrypt.dll,記得把 PHP 5.2.14 的 libmcrypt.dll (位於 D:\AppServ\php5內) 重新複製到 C:\WINDOWS 內。

8. start Apache server。

9. 連到 http://localhost/phpinfo.php,版本若為 PHP Version 5.2.14 表示更新成功囉。

p.s. AppServ 自 2008.06.10 release 2.5.10 之後,似乎就沒有更新的版本推出了。所以也可以考慮換個 WAMP 來用,例如 WampServer 或是 XAMPP 來安裝。

*1 AppServ default 是使用 PHP ISAPI 模式執行,所以是建議下載 Thread Safe 的版本。
如果是用 FastCGI模式,則建議使用 Non Thread Safe 的版本。
另外,PHP 5.3 後:
VC6 --> 以Visual Studio 6 編譯 for Apache。
VC9 --> 以Visual Studio 2008 編譯 for IIS。
PHP for Windows 內有詳細說明。

*2 這裡推薦一套好用的文件比對軟體 WinMerge

2010年10月4日 星期一

PHP:Oracle 函數 OCI8 的連線處理

OCI8 提供了 3 個不同函數來連線 Oracle Database,其連線處理方式如下:

1. oci_pconnect() 函數:
使用了一個連線持久緩沖區,對在同個 script 中用同樣的參數多次呼叫 oci_pconnect(),則第二個和之後的呼叫會返回已有的連線 (返回的連線ID會是相同的)。其緩沖區獨立地維持著在不同請求之間都存活著,而可以被不同的 script request 重複使用。

2. oci_connect() 函數:
使用了一個連線緩沖區,對在同個 script 中用同樣的參數多次呼叫 oci_connect(),則第二個和之後的呼叫會返回已有的連線 (返回的連線ID會是相同的)。使用的連線緩衝區會在 script 執行完畢後或是明確地關閉了連線時被清除。

3. oci_new_connect() 函數:
不管連線是否已經存在,總是建立一個連接 Oracle 伺服器的新連線。高流量且連線頻繁的 web application 應該避免使用 oci_new_connect()。

資料來源:PHP 手冊:Oracle 函數