Pour installer l’extension oci (oracle) pour php7.2, il faut avant avoir installer apache, php-7.2. Puis se rendre sur ce site http://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html puis télécharger ces 2 paquets
instantclient-basic-linux.x64-12.2.0.1.0.zip
instantclient-sdk-linux.x64-12.2.0.1.0.zip
Puis les envoyer sur le serveur (avec ssh, ou winscp) dans le dossier /tmp, il faut ensuite unzip les 2 zip. Ensuite, il faut déplacer les fichiers dans le dossier /opt
mkdir /opt/oracle/
mv /tmp/instantclient_12_2/ /opt/oracle
Il faut créer les liens symboliques
ln -s /opt/oracle/instantclient_12_2/libclntsh.so.12.1 /opt/oracle/instantclient_12_2/libclntsh.so
ln -s /opt/oracle/instantclient_12_2/libocci.so.12.1 /opt/oracle/instantclient_12_2/libocci.so
Il faut donner les droits sur le répertoire
chown -R root:www-data /opt/oracle
Puis ajouter les librairies dans le ldconfig
echo /opt/oracle/instantclient_12_2 > /etc/ld.so.conf.d/oracle-instantclient
ldconfig
Il faut ensuite les paquets suivant (requis pour pecl)
apt install php7.2-dev php-pear build-essential libaio1
Puis il faut installer oci8 via pecl
pecl install oci8
A la question concernant le chemin, il faut répondre ceci
instantclient,/opt/oracle/instantclient_12_2
Il faut ensuite modifier les fichiers php.ini pour ajouter l’extension
nano /etc/php/7.2/apache2/php.ini
y ajouter dans dynamic extension
extension = oci8.so
nano /etc/php/7.2/cli/php.ini
y ajouter dans dynamic extension
extension = oci8.so
Il faut ensuite ajouter les variables d’environnement pour cli
echo "LD_LIBRARY_PATH=\"/opt/oracle/instantclient_12_2\"" >> /etc/environment
echo "ORACLE_HOME=\"/opt/oracle/instantclient_12_2\"" >> /etc/environment
Puis celles d’apache
echo "export LD_LIBRARY_PATH=\"/opt/oracle/instantclient_12_2\"" >> /etc/apache2/envvars
echo "export ORACLE_HOME=\"/opt/oracle/instantclient_12_2\"" >> /etc/apache2/envvars
Il faut ensuite redemarrer la machine pour prendre en compte les variables d’environnement de cli
sudo reboot