[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[RISOLTO] Re: installazione oci8 su php7



Non so se qualcuno è interessato... scrivo la soluzione trovata.

Partendo proprio da[¹] ho capito che il problema poteva essere nell'oci8 o meglio nel file config.m4 presente nel pacchetto pecl oci8. La versione che pecl voleva installare è la 2.1.8. Ho quindi fatto il download di oci8-2.1.8.tgz (pecl download oci8), scompattato oci8-2.1.8.tgz e andato ad analizzare il file config.m4. Per la libreria libclntsh.so.12.1 esistono 2 righe nel file config.m4 che fanno riferimento a quella libreria in questo modo:

PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD)

che evidentemente caricano la libreria libclntsh.so (infatti nella documentazione oracle dice che prima di lanciare il pecl install bisogna fare un link simbolico libclntsh.so a libclntsh.so.12.1.so ed ora ho capito il perché).

A questo punto facciamo un passo indietro... le righe "not found" restituite da ldd sono 3:
    libnnz12.so => not found
    libons.so => not found
    libclntshcore.so.12.1 => not found

Ho allora provato ad aggiungere subito dopo le 2 volte che compare PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD) le seguenti righe:

PHP_ADD_LIBRARY(nnz12, 1, OCI8_SHARED_LIBADD)
PHP_ADD_LIBRARY(ons, 1, OCI8_SHARED_LIBADD)
PHP_ADD_LIBRARY(clntshcore, 1, OCI8_SHARED_LIBADD)

Quindi analogamente a quanto suggerito da oracle per la libreria libclntsh.so.12.1.so ho fatto un link simbolico nella dir dell'instant client libclntshcore.so per libclntshcore.so.12.1.

A questo punto sono entrato nella dir dove ho scompattato oci8-2.1.8.tgz e lanciato di seguito i comandi:
# phpize
# ./configure --with-php-config=/usr/bin/php-config --with-oci8=instantclient,/opt/oracle/instantclient
# make && make install
dove /opt/oracle/instantclient è la directory dove ho scompattato instantclient-basic-linux-12.2.0.1.0.zip e instantclient-sdk-linux-12.2.0.1.0.zip scaricati dal sito oracle.

A questo punto ldd mi restituisce:
# ldd /usr/lib/php/20151012/oci8.so
	linux-gate.so.1 (0xb7791000)
	libclntsh.so.12.1 => /opt/oracle/instantclient/libclntsh.so.12.1 (0xb48a3000)
	libons.so => /opt/oracle/instantclient/libons.so (0xb486a000)
	libnnz12.so => /opt/oracle/instantclient/libnnz12.so (0xb43d2000)
	libclntshcore.so.12.1 => /opt/oracle/instantclient/libclntshcore.so.12.1 (0xb411a000)
	libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb3f4c000)
	libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb3f47000)
	libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb3ef2000)
	libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb3ed5000)
	libnsl.so.1 => /lib/i386-linux-gnu/libnsl.so.1 (0xb3eb9000)
	librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb3eb0000)
	libaio.so.1 => /lib/i386-linux-gnu/libaio.so.1 (0xb3ead000)
	libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xb3e95000)
	/lib/ld-linux.so.2 (0xb7792000)

che mostra che tutti i riferimenti alle librerie condivise sono soddisfatti!

Please, my 2 cents ;)

Piviul

[¹] https://bugs.php.net/bug.php?id=61551

PS
Secondo voi devo aprire un bug report? Se si dove a php7.0 o php-pear?


Reply to: