E’ vero, avevo scritto come ripristinare il funzionamento fra PHP e DB oracle, ma come l’avevo fatto ? Bho !!
Alla fine mi sono messo d’impegno per capire come e questi sono i passi :
Innanzitutto dal sito di Oracle, bisogna prendere i pacchetti del client Oracle, ma ci sono due difficoltà: la prima che bisogna registrarsi sul sito di Oracle per prelevare i pacchetti, che però sono pacchettizzati come rpm, ma possono essere convertiti facilmente da rpm id deb tramite alien; una volta a disposizione i pacchetti deb lanciare
dpkg -i oracle-instantclient18.5-sqlplus_18.5.0.0.0-4_amd64.deb
dpkg -i oracle-instantclient18.5-devel_18.5.0.0.0-4_amd64.deb
dpkg -i oracle-instantclient18.5-basic_18.5.0.0.0-4_amd64.deb
Seguito da
apt install php-dev php-pear build-essential libaio1
Aggiornare il repository del pecl
pecl channel-update pecl.php.net
a questo punto è possibile lanciare l’installazione vero e propria della libreria per il php, ma servono un paio di informazioni aggiuntive:
la versione che io ho installato era relativa alla version di php 7.4 e per lanciare la versione corretta di sorgente oci bisogna lanciare
pecl install oci8-2.2.0
che indica che la versione da installare è la 2.2.0 e non l’ultima (oggi è la 3.0.1) in quanto la 3.x è per la versione 8.0 del php ed inoltre bisogna cercare la di della libreria di Oracle: ne mio sistema è sotto /usr/lib/oracle/18.5/client64/lib
Quindi lanciare
pecl install oci8-2.2.0
ed alla richeta del path digitare
instantclient,/usr/lib/oracle/18.5/client64/lib
una volta terminate l’installazione bisogna creare/modificare il file /etc/ld.so.conf.d/oracle.conf
vi /etc/ld.so.conf.d/oracle.conf
inserndo
/usr/lib/oracle/18.5/client64/lib
e poi
ldconfig
inserire all’interno dei due php.ini la riga
extension=oci8.so
e poi (nel caso di php-fpm per nginx) un
service php7.4-fpm restat
o
service apache2 restart
se tutto è filato liscio come dovrebbe essere stato con
php -i | grep -i OCI
avrete la conferma che le librerie di oracle sono utilizzabili !!