Protected: [note] Install php7 oci8 on Ubuntu steps

This content is password protected. To view it please enter your password below:

DATABASE Programming/php Software System/Linux/Unix*

[★★★★] debian / ubuntu LAMP : 裝 oracle instant client / sqlplus / oci8 / apache2 config / steps by steps


Screenshot 2016-02-02 16.02.21

-rw-r–r–@ 1 rimmon  staff  62587782  8  2  2014 oracle-instantclient12.1-basic-

-rw-r–r–@ 1 rimmon  staff    634803  8  2  2014 oracle-instantclient12.1-devel-

-rw-r–r–@ 1 rimmon  staff    852271  8  2  2014 oracle-instantclient12.1-sqlplus-


// 2016.0202 —-

裝 pecl/oci8 command:

pecl install oci8-2.0.10



2013.1225 added

3  apt-get install alien

6  apt-get install nfs-common

8  apt-get install sshfs



apt-get install  apache2 libapache2-mod-php5 php5 php5-dev php5-gd  php5-mysql php5-memcache memcached php-pear




2011.0530 整理的 install step by step:
OS : uname -a
Linux ubuntu 2.6.38-8-server #42-Ubuntu SMP Mon Apr 11 03:49:04 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

Oracle client : 11.2 R1

google "oracle instant client download"
到 oracle 網頁找 Instant Client for Linux x86-64 / Version (PS: Version 這版有問題)
download 這兩個
oracle-instantclient11.2-basic- (47,811,007 bytes)
oracle-instantclient11.2-devel- (606,343 bytes)
用 alien 裝起來
  102  alien -i *basic*
  103  alien -i *devel*

新增這個檔 /etc/ , 內容:

  104  cat /etc/
  105  ls -l /usr/lib/oracle/
  106  ls -l /usr/lib/oracle/11.2/client64/lib/

安裝 LAMP :
  108  export http_proxy=""
  109  apt-get install apache2 libapache2-mod-php5 php5 php5-dev php5-gd mysql-server php5-mysql

安裝 libaio 套件
  138  apt-get install libaio1

安裝 pear 套件
  112  apt-get install php-pear

安裝 pecl 的 oci8 套件
pear config-set http_proxy

  114  pecl update-channels
  115  pecl install oci8

  117  find /etc -name php.ini
這兩個檔要加入 oci8 的 extentsion

install ok: channel://
configuration option "php_ini" is not set to php.ini location
You should add "" to php.ini <------ 加這行


$conn = oci_connect('oracle_user', 'oracle_pass', 'ip_address/instant_id');

$stid = oci_parse($conn, "select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') from dual" );

$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);
print_r( $row );

oci_close( $conn );

// ——————————–
以下是 2011.5.25 修改

   69  find / -name sqlplus -print
   70  /usr/lib/oracle/11.2/client64/bin/sqlplus
   71  cat > /etc/

   73  ls -l /usr/lib/oracle/11.2/client64/lib/

   76  vi /etc/
   77  apt-get install apache2 libapache2-mod-php5 php5 php5-gd mysql-server php5-mysql

   86  apt-get install php-pear

   91  pear config-set http_proxy
   92  pecl update-channels

   95  pecl install oci8

2010.0630 : 今天又在 debian 裝一次 發現, 這個版本沒辦法裝 oracle-instantclient11.2.* , 所以繼續用 instantclient11.1.*

Ubuntu 安裝 RPM 要用 alien …
sudo apt-get install alien



download 這幾個 files (rpm)

Instant Client Package – Basic Lite

Instant Client Package – SQL*Plus

Instant Client Package – SDK

下 alien 指令安裝 rpm

alien -i oracle-instantclient11.1-basiclite-
alien -i oracle-instantclient11.1-sqlplus-
alien -i oracle-instantclient11.1-devel-

裝好後用 sqlplus 聯看看 , 因為我得到一個 lib error

所以我要裝 apt-get install libaio1

在 /etc/ 加一個檔 cat > /etc/

內容是 oracle lib 的 path /usr/lib/oracle/11.1/client/lib


apt-get install php5

apt-get install php5-dev

因為 oci8 是由 pecl 來安裝的, 所以要 apt-get install php-pear

再來裝 oci8 : pecl install oci8

在 /etc/php5/conf.d 下建一個 oci8.ini 檔 , cat > /etc/php5/conf.d/oci8.ini 內容是

重新啟動 apache2 :

service apache2 restart

看看 phpinfo 有沒有出現 oci8 等字樣就 ok 了


加一個 virtual host :

在 /etc/apache2/sites-enabled 增加一個 xxx.conf 檔

CodeIgniter 需要用 rewrite module :

ls -sf /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled

Copy_N_Paste DATABASE Programming/php

USE Oracle / oci8 with PHP / test sample code

前提環境要先裝好 Oracle instant client , 然後 PHP 要把 instantclient 編譯進去


這是 sample code

$conn = OCILogon('scott', 'scott', '//');

$query = 'select * from dept';

$stid = OCIParse($conn, $query);
OCIExecute($stid, OCI_DEFAULT);
while ($succ = OCIFetchInto($stid, $row)) {
  foreach ($row as $item) {
    echo $item." ";
  echo "\n";


1. 建 oracle table 時不管key 的 table name , field name 是否為小寫, 在 oracle 都顯示成大寫
2. 用 PHP 的 OCI functions 下的 SQL command 也可以不管大小寫