2010年9月30日 星期四

Oracle 10g R2 XE tnsnames.ora sample

TEST=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
)
(CONNECT_DATA =
(SID = XE)
)
)

AppServ PHP 和 Oracle 10g R2 的 connection 環境建置和設定

環境資料:
OS: Windows
PHP 環境 -- AppServ 2.5.10:
  • Apache 2.2.8
  • PHP 5.2.6
  • MySQL 5.0.51b
  • phpMyAdmin-2.10.3
  • php OCI8
  • PHP的安裝目錄設為:D:\AppServ\php5

Oracle DB 10g R2 XE for Windows 或是 Oracle 10g R2 client for Windows

步驟:

1. 請參考 PHP:AppServ 安裝及設定 in Windows 安裝 AppServ 2.5.10。

2. 安裝
Oracle Database 10g R2 XE 或是 Oracle 10g R2 Client,可至 Oracle 網站 下載軟體及查看安裝方式。

安裝完成後,設定或是確定 系統環境變數 PATH 內,有 Oracle library directory 的資料,例如
Oracle client:確定 PATH 內有 D:\oracle\product\10.2.0\client_1\bin
Oracle DB:確定 PATH 內有 %ORACLE_HOME%\bin

如果是安裝 Oracle client,請建立一 tnsnames.ora 文件,放置於 D:\AppServ\oracle\admin\ 內,或是其他任何地方。tnsnames.ora sample

注意事項:
依據 PHP: OCI8 - Manual 文獻,在 Windows 上使用 OCI8,需要安裝 Oracle 10g R2 以上版本的 client libraries。

3. 安裝 OCI8 in Windows:
AppServ 已有將 OCI8 需要的 php_oci8.dll 安裝於 D:\AppServ\php5\ext 中,所以只要修改 php.ini,將 ;extension=php_oci8.dll uncomment ,並確定 extension_dir 是設到 D:\AppServ\php5\ext 即可。

4. 設定 Oracle 的Windows系統環境變數:

A. ORACLE_HOME
如果有安裝 Oracel DB,請設定此一環境變數。
ext: ORACLE_HOME=D:\oraclexe\app\oracle\product\10.2.0\server
如果是安裝 Oracle client,此環境變數可以不用設定。

B. NLS_LANG
設定 NLS_LANG=AMERICAN_AMERICA.UTF8
如果是使用 Big5,則設定成 NLS_LANG=AMERICAN_AMERICA.ZHT16BIG5

C. TNS_ADMIN

如果是安裝 Oracle client,請設定到 tnsnames.ora 存放的路徑
ext: TNS_ADMIN=D:\AppServ\oracle\admin
如果是安裝 Oracle DB 則可以不用設定,因為系統會自動預設為 %ORACLE_HOME%\NETWORK\ADMIN

注意事項:
依據 PHP: OCI8 - Manual 文獻,說明要在 Web Server 啟動前(例如 Apache 啟動前),設定好 Oracle 的環境變數。且不要使用 PHP 的 putenv() 來設定。
不過,經過測試,NLS_LANGTNS_ADMINNLS_SORT 是可以使用 putenv() 來設定,使用到目前為止,還沒有出現問題。

5. 測試:(假設 Ap 和 Oracle DB 裝在同一台機器上。)

tnsnames.ora 文件內加上下方的資料:

TEST=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
)
(CONNECT_DATA =
(SID = XE)
)
)

建立測試 php:testOCIConn.php

//oci_connect(string $username, string $password, string $connection_string)
$conn = oci_connect("testconn", "connconn", "TEST");

if(!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
else {
echo "testconn 連線成功!!";
}

run testOCIConn.php,如果出現 testconn 連線成功!!,就表示安裝設定成功,且連線成功了。

參考文件:PHP: OCI8 - Manual

2010年9月29日 星期三

Windows + AppServ PHP 之 php_mcrypt.dll 問題!!

OS : Windows XP
PHP 環境 -- AppServ 2.5.10:

  • Apache 2.2.8
  • PHP 5.2.6
  • MySQL 5.0.51b
  • phpMyAdmin-2.10.3
  • PHP的安裝目錄設為:D:\AppServ\php5
php.ini 裡, 將 ;extension=php_mcrypt.dll uncomment,並重新啟動 apache 後,發現 load mcrypt 出現問題,且該模組也沒有成功的 load。

後來發現原因為 PHP Server 找不到 php_mcrypt.dll 相依的 libmcrypt.dll檔案,即使 path 內有設定相關路徑,也是有錯誤。

解決方法:
將 D:\AppServ\php5 裡的 libmcrypt.dll copy 到 C:\WINDOWS\ 下,然後重新啟動 apache,即可成功載入模組。

2010年9月27日 星期一

PHP:Install eAccelerator in windows

eAccelerator 簡介:
eAccelerator 是一個免費且開放原始碼的 PHP 加速器和優化器。它透過暫存(caching) PHP script 編譯後程式的方式來增加 PHP 的效能,如此可使編譯消耗的資源降到最低。它也優化 PHP script 來加快 script 執行速度。
eAccelerator 通常可以降低伺服器的負載,提高 PHP code 的執行速度 1 ~ 10 倍。

注意事項:eAccelerator 只能在 mod_php 或是 php in fastcgi mode 下工作及執行,不能用於 CGI和CLI。

安裝:
PHP 環境 -- AppServ 2.5.10:
  • Apache 2.2.8
  • PHP 5.2.6
  • MySQL 5.0.51b
  • phpMyAdmin-2.10.3
  • PHP的安裝目錄設為:D:\AppServ\php5
步驟:

1. 至 eAccelerator binaries for PHP 5.x (windows builds) 下載與 PHP 同版本的 eAccelerator binaries,這裡是下載 eAccelerator 0953 for PHP 5.2.6下載的檔案檔名為:eAccelerator0953_5.2.6.dll,將它改名為 php_eAccelerator0953_5.2.6.dll (當然也可以不改名),然後放到 PHP 的 extensions 資料匣內, 本例是放到 D:\AppServ\php5\ext\ 內。

2. 確定 php.ini 的 extension_dir 之設定是正確指到
PHP 的 extensions 資料匣,例如:extension_dir = "D:\AppServ\php5\ext"。

3. 建立一個存放 temporary cached files 的資料匣,例如:D:\AppServ\php5\tmp\eAccelerator。

4. eAccelerator 可以安裝到 Zend extension 或是 PHP extension 中,詳細資料可以到 Configuring eAccelerator查詢。這裡我們將安裝到 Zend extension 中,另外 AppServ 預設是將 php 的 thread safe 功能開啟,所以我們在 php.ini 裡是加入以下的 eAccelerator config :

zend_extension_ts="D:\AppServ\php5\ext\php_eAccelerator0953_5.2.6.dll"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="D:\AppServ\php5\tmp\eAccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

Config項目的相關資訊可以到 eAccelerator settings 或是 www.sitebuddy.com 的 eAccelerator 查詢

5. 重新啟動 apache。

6. 查看 phpinfo() 的資訊,如果有出現 eAccelerator 的項目,就表示安裝成功了。

2010年9月23日 星期四

PHP 核心簡介

PHP的核心由兩個個別的部分組成,最底層(低階)的是Zend Engine (ZE),另一部分是 PHP Core。

1. Zend Engine (ZE):
  • 負責解析 (parsing) 人們易讀的腳本 (script) 成機器可讀的符號,然後在行程空間 (process space) 內執行這些符號。
  • 也處理記憶體管理、變數範圍(variable scope)(變數可視或可作用的範圍) 以及調度函數的呼叫 (dispatching function calls) 等。
2. PHP Core:
  • 和 SAPI層*綁定,並處理與它的通信 (communication)。
  • 提供一致的控制層給 safe_mode 和 open_basedir 檢測,以及串流層 (stream layer) 讓檔案(file)及網路(network) I/O 透過用戶空間 (userspace) 的函數,如fopen()、fread()和fwrite()等,聯繫起來。
* SAPI : Server Application Programming Interface,通常涉及(refer to)主機環境,如 Apache, IIS, CLI, CGI 等等。


原文出處:http://devzone.zend.com/article/1021

2010年9月15日 星期三

PHP:AppServ 安裝及設定 in Windows

1. 安裝 AppServ

AppServ Network 下載 AppServ 2.5.10 :
  • Apache 2.2.8
  • PHP 5.2.6
  • MySQL 5.0.51b
  • phpMyAdmin-2.10.3
安裝方式請參閱:How to install AppServ
安裝目錄設為:D:\AppServ

2. 初步設定 PHP.ini:

修改 C:\WINDOWS\php.ini
  • memory_limit = 64M --> 設定 PHP 程式最多允許多少記憶體,改設定為 64 MB。
  • max_execution_time = 30 --> 設定 PHP 程式允許執行的時間,單位為秒,改設定為30秒。
  • 將 extension=php_mbstring.dll 移到 extension=php_exif.dll 之前,避免安裝 PEAR 時,出現 dll 的錯誤。
  • 將 extension_dir = "D:/AppServ\php5\ext" 改為 extension_dir = "D:\AppServ\php5\ext",修改AppServ 2.5.10的小問題。
  • include_path 暫時先不設定,等安裝完 PEAR 後,會自動被設定。
重啟 apache。

3. 測試 Apache 和 PHP 是否安裝成功:

a. Apache Server測試 :
  • 在 browser 輸入 http://localhost/ ,出現標題為 The AppServ Open Project - 2.5.10 for Windows 的網頁,就表示 Apache 成功啟動了。
b. PHP 測試 :
  • 在 browser 輸入 http://localhost/phpinfo.php,出現標題為 PHP Version 5.2.6 的網頁畫面,就表示 php 安裝成功可以使用了。

p.s. phpinfo.php 是 AppServ 安裝後會在 Apache 網站預設根目錄 D:\AppServ\www\ 內放置 的php information 網頁,程式內容為呼叫 phpinfo() function,功能主要是顯示 php 的相關資訊,及安裝的模組。

4. 安裝 PEAR (PHP Extension and Application Repository)
  • 執行 D:\AppServ\php5\go-pear.bat 來安裝 PEAR。
  • 安裝過程中的詢問選項,都按 Enter 鍵接受預設值。
  • 安裝完成後,go-pear.bat 會在 php.ini 最下方加入 include_path=".;D:\AppServ\php5\pear" 的 include path 設定。
  • 雙按 D:\AppServ\php5\PEAR_ENV.reg 登錄檔來加入環境變數。
  • 測試 pear : 開啟 windows 的 cmd 視窗,然後輸入命令 pear version,如果出現 pear 版本訊息,就表示 pear 安裝成功了。
  • 重啟 apache server。