環境說明:RedHat Linux EL4
apache 2.0.55
php 5.1.2
unixODBC 2.2.9
easysoft oracle driver: odbc-oracle-3.0.0-linux-x86-glibc
ORACLE 10gr2
通過PHP連接oracle 數據庫,筆者選擇了 easysoft的odbc driver作爲中間件,據說比oracle 自身的優秀,本文只說安裝,沒有任何對比,僅供參考
1、apache 2.0.55安裝:此處編譯安裝到/www 目錄,其他略
2、unixODBC 安裝
由於PHP 編譯需要unixODBC 的頭文件,所以需要安裝unixODBC devel和unixODBC庫
從RHEL4光盤的第3和第4張分別查找到 unixODBC-devel-2.2.9-1.i386.rpm 和 unixODBC-2.2.9-1.i386.rpm
執行:
rpm -ivh unixODBC-2.2.9-1.i386.rpm
rpm -ivh unixODBC-devel-2.2.9-1.i386.rpm
(建議執行前通過 rpm -qa|grep unixODBC 查找一下,是否已經安裝)
3、php 5.1.2 安裝
下載 php-5.1.2.tar.gz 依次執行:
tar zxvf php-5.1.2.tar.gz
cd php-5.1.2
./configure --prefix=/www/php --with-apxs2=/www/bin/apxs --with-zlib --with-mysql=/usr/lib/mysql --enable-soap --enable-sockets --with-gd --with-libxml --with-unixODBC=/usr --with-dom=/usr --with-dom-xslt=/usr --with-dom-exslt=/usr --with-xmlrpc=shared
(根據需要添加,重點在 --with-unixODBC=share,/usr)
make
make install
4、easysoft oracle driver 安裝
從www.easysoft.com 下載 driver 安裝包:odbc-oracle-3.0.0-linux-x86-glibc.tar
依次執行:
tar xvf odbc-oracle-3.0.0-linux-x86-glibc.tar
cd odbc-oracle-3.0.0-linux-x86-glibc
./install (默認安裝到:/usr/local/easysoft)
按提示執行,基本上都是Yes,當提示是否使用其自身攜帶的unixODBC時,可選否,使用系統已經安裝的。
由於此driver 涉及到License問題,可以根據提示獲取一個license
此時在 /usr/local/easysoft/license/ 產生名爲 license.out的文件,執行:
mv license.out license
如不產生License則無法運行
5、修改/etc/odbc.ini 以下爲示例
[Data Sources]
ips = Oracle ODBC Driver DSN
[default]
Driver = /usr/local/easysoft/oracle/libesoracle.so
[test]
Driver = /usr/local/easysoft/oracle/libesoracle.so
Description = Oracle
server = 10.3.7.7
ServerType = Oracle
Port = 1521
User = hunter
Password = hunterpass
Database = ORCL.CCPUIPS.COM
SID = orcl.ccpuips.com
METADATA_ID = 0
ENABLE_USER_CATALOG = 1
ENABLE_SYNONYMS = 1
[default]
Driver = /usr/local/easysoft/oracle/libesoracle.so
6、修改/etc/odbcinst.ini
[test]
Descriptions = ODBC for Oracle
Driver = /usr/local/easysoft/oracle/libesoracle.so
7、修改$ORACLE_HOME/netword/admin/tnsnames.ora (根據需要安裝Oracle客戶端),如下爲示例:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = HunterZhao.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.hunter.com)
)
)
8、修改$ORACLE_HOME/netword/admin/tnsnames.ora (根據需要安裝Oracle客戶端),如下爲示例:
NAMES.DIRECTORY_PATH=(TNSNAMES,ONAMES,HOSTNAME)
9、修改/www/conf/httpd.conf 增加ORACLE的環境變量
SetEnv ORACLE_BASE /u01/oracle10g
SetEnv ORACLE_HOME /u01/oracle10g/home10g
SetEnv ORACLE_SID orcl
SetEnv LD_LIBRARY_PATH /usr/local/easysoft/unixODBC/lib:/usr/local/easysoft/lib:/u01/oracle10g/home10g/lib
10、修改$ORACLE_HOME的權限,使得外部用戶可以訪問$ORACLE_HOME目錄中的內容。
11、啓動apache :
/www/bin/apachectl start
到此,理論上應該成功:)