Build oci for PHP

mount DVD iso

mkdir /media/CentOS

mount /dev/cdrom /media/CentOS -o loop

vi /etc/yum.repos.d/CentOS-Media.repo

add file:///media/xxx   corresponding to the DVD media

download php source

yum –enablerepo=c6-media install libxml-devel

resp. yum –enablerepo=c8-media-AppStream install libxml-devel

yum –enablerepo=c6-media install httpd-devel

yum –enablerepo=c8-media-AppStream install libnsl

(replaces the NIS library that used to be in glibc)

extract php sources

./confgure

make
make test
make install

Download Oracle Client & SDK

vi /etc/ld.so.conf.d/oracle-11g-64.conf
/opt/app/oracle/product/11.2.0

ldconfig -v

export ORACLE_HOME=/opt/app/oracle/product/11.2.0
ln -s libclntsh.so.11.1 libclntsh.so

/usr/sbin/setenforce 0     ??

yum groupinstall “Development tools”

export CFLAGS=-m64
export CPPFLAGS=-m64
export CCASFLAGS=-m64

export CPPFLAGS=”-I/usr/include/oracle/19.5/client64 -m64″

cd php sources
cd ext
cd oci8
phpize
./configure –with-oci8=instantclient,/opt/app/oracle/product/11.2.0,11.2.0.3.0
make
ls modules

cd php sources
cd ext
cd pdo_oci
phpize
./configure –with-pdo-oci=shared,instantclient,/opt/app/oracle/product/11.2.0,11.2.0.3.0
make
ls modules

check with

ldd modules/oci8.so

all links ok?

make install

check which php.ini is used. If /etc/php.d Directory, add 20.oci.ini with

extension=oci8

and run php -v to see if any errors with so

restart Webserver and FPM (if used)

 

Update for CentOS 8, Minimal Installation (command history):

   16  less /etc/yum.repos.d/CentOS-Media.repo 
   17  mkdir /media/CentOS
   19  mount /dev/cdrom /media/CentOS -o loop
   41  yum --enablerepo=c8-media-BaseOS install mailcap
   49  rpm -ql mailcap
   50  yum --enablerepo=c8-media-AppStream install httpd
   51  yum --enablerepo=c8-media-AppStream install php.x86_64
   56  yum --enablerepo=c8-media-BaseOS install net-tools
   57  rpm -ql net-tools
   58  rpm -q net-tools
   59  find /media -name "net*.rpm"
   60  rpm -qlp /media/CentOS/BaseOS/Packages/net-tools-2.0-0.51.20160912git.el8.x86_64.rpm 
   61  rpm -qlp /media/CentOS/BaseOS/Packages/net-tools-2.0-0.51.20160912git.el8.x86_64.rpm | less
   62  yum --enablerepo=c8-media-BaseOS install net-tools
   66  apachectl configtest
   67  apachectl start
   69  telnet localhost 80
   73  yum --enablerepo=c8-media-AppStream install telnet
   77  ifconfig
   78  dhclient
   79  ifconfig
   90  firewall-cmd --get-default-zone
   91  ip link show
   93  firewall-cmd --list-all --zone=public
   94  systemctl enable firewalld
   95  firewall-cmd --state
   97  firewall-cmd --get-zones
   98  firewall-cmd --get-services
  103  firewall-cmd --get-active-zones
  105  firewall-cmd --zone=public
  106  firewall-cmd --zone=public --list-services
  107  firewall-cmd --zone=public --permanent --add-service=https
  108  firewall-cmd --zone=public --permanent --add-service=http
  109  firewall-cmd --zone=public --list-services
  110  firewall-cmd --reload
  111  firewall-cmd --zone=public --list-services
  112  firewall-cmd --get-active-zones
  122  less /etc/httpd/conf/httpd.conf 
  115  cd /var/www
  129  cd html
  133  vi test.php
  137  mount /dev/cdrom /media/CentOS -o loop
  140  yum --enablerepo=c8-media-AppStream install wget
  143  wget https://download.oracle.com/otn_software/linux/instantclient/195000/oracle-instantclient19.5-basic-19.5.0.0.0-1.x86_64.rpm
  144  wget https://download.oracle.com/otn_software/linux/instantclient/195000/oracle-instantclient19.5-devel-19.5.0.0.0-1.x86_64.rpm
  149  cksum oracle-instantclient19.5-basic-19.5.0.0.0-1.x86_64.rpm 
  150  cksum oracle-instantclient19.5-devel-19.5.0.0.0-1.x86_64.rpm 
  157  rpm -iv oracle-instantclient19.5-basic-19.5.0.0.0-1.x86_64.rpm 
  158  rpm -iv oracle-instantclient19.5-devel-19.5.0.0.0-1.x86_64.rpm 
  159  find / -name "oci.h"
  160  echo $ORACLE_HOME
  161  find / -name "libclntsh.so"
  163  grep -r oracle /etc/* | less
  164  ldconfig -v
  168  wget https://www.php.net/distributions/php-7.2.11.tar.bz2
  177  yum --enablerepo=c8-media-BaseOS install bzip
  179  mkdir php
  180  mv php-7.2.11.tar.bz2 php/
  181  cd php/
  183  bunzip2 php-7.2.11.tar.bz2 
  188  yum --enablerepo=c8-media-BaseOS install tar
  189  tar xvf php-7.2.11.tar 
  190  cd php-7.2.11/ext/oci8/
  194  yum --enablerepo=c8-media-AppStream install php-devel
  196  yum --enablerepo=c8-media-AppStream install libxml2-devel
  197  phpize
  202  rpm -qlp /root/oracle-instantclient19.5-basic-19.5.0.0.0-1.x86_64.rpm 
  203  export ORACLE_HOME=/usr/lib/oracle/19.5/client64
  208  yum groupinstall "Development tools"
  211  find / -name "oci.h"
  210  echo $CPPFLAGS
  222  export CPPFLAGS="-I/usr/include/oracle/19.5/client64 -m64"
  228  ./configure --with-oci8=shared,$ORACLE_HOME
  229  make
  230  ls modules
  231  ldd modules/oci8.so 
  233  yum --enablerepo=c8-media-AppStream install libnsl
  234  ldd modules/oci8.so 
  235  make install
  236  cd /etc/php.d
  241  vi 20.oci.ini 
  248  systemctl restart httpd
  249  systemctl restart php-fpm