首先要確定 CentOS 6.2 上的 SELinux 功能是否已開啟,在 CentOS5.x 之前 SELinux 安裝的預設值都是關閉的,當時可能 RedHat 認為大家對這東東還不熟......不過到現在我也還是對 SELinux 很陌生... :-P。
到了 CentOS 6 的安裝預設值就啟用 SELinux 了。
題外話,正巧在昨日(2012/01/12) 去聽了 RedHat 的產品研討會,會中就強調了 SELinux 對資安控管的重要性,所以也建議您將 SELinux 列入要學習研究的課題。
如果您到目前為止也和老灰鴨一樣對 SELinux 很不熟的話,那就先將它關閉吧。
vim /etc/sysconfig/selinux
將原設定 mark 起來,修改如下 ----
# SELINUX=enforcing
SELINUX=disabled
存檔後重開機.
建立一個目錄,用來暫放要安裝的檔案,我選擇建立 /tmp/oracle/
上 Oracle 官網下載 instant-client-basic 和 instant-client-devel 並存放於 /tmp/oracle/ 下
上 php 官網 http://pecl.php.net/package/oci8 下載 oci8,目前版本為 oci8-1.4.7.tgz,並存放於 /tmp/oracle/ 下
安裝 gcc
[root]# yum install gcc
安裝 php
因為懶,所以我選擇全裝 :-P
[root]# yum install php*
安裝 oracle-instantclient-basic 和 oracle-instantclient-devel
yum
install --nogpgcheck
oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64
oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64
安裝 oci8
[root]# pecl install oci8-1.4.7.tgz
在 php 設定檔加入啟動 oci8 函式
做法有二:
一是直接寫在 php.ini 這個設定檔內, 另一做法是在 /etc/php.d/ 下建立一個 oci8.ini, 您也會看到在 /etc/php.d/ 下有一堆的 xxx.ini
二種做法都是寫入下面這行
extension=oci8.so
在網站目錄下寫 phpinfo() 驗證, 要看到如下圖才算是成功喔.
注意您要安裝的 oracle-instantclient 版本,以老灰鴨的公司為例,我們採用的是 Oracle9i,下載最新的
oracle-instantclient 11.2 版是不合用的,雖然在 phpinfo() 有顯示上面的 oci8 模組,但撈資料時都出現
ORA-24408 could not generate unique server group name 的錯誤(上面的圖就是當初安裝 11.2 時擷取的),要改安裝 10.2.0.5;所以若您全部步驟都做完了,仍無法連到 Oracle 撈資料,可能就是裝了不合用的版本,再下載安裝其他版本試試。
沒有留言:
張貼留言