Re: MDB2 e PHP7.0

2018-07-05 Per discussione valerio




Il 05/07/2018 16:52, Piviul ha scritto:
Ciao a tutti, trovato un problema se ne trova un altro. Sul server che 
ho aggiornato a stretch uso massivamente MDB2... ora con php7 ricevo il 
seguente errore:
Parse error: syntax error, unexpected 'new' (T_NEW) in 
/usr/share/php/MDB2/Driver/pgsql.php on line 925


ciao,
non uso MDB2, ma e cosa dice la linea 925?




MDB2 e PHP7.0

2018-07-05 Per discussione Piviul
Ciao a tutti, trovato un problema se ne trova un altro. Sul server che 
ho aggiornato a stretch uso massivamente MDB2... ora con php7 ricevo il 
seguente errore:
Parse error: syntax error, unexpected 'new' (T_NEW) in 
/usr/share/php/MDB2/Driver/pgsql.php on line 925


Qualcuno ha qualche idea? Finché uso PEAR::MDB2_Driver_pgsql non posso 
passare a php7?


Piviul



[RISOLTO] Re: installazione oci8 su php7

2018-07-05 Per discussione Piviul

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 (0xb3eb)
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?



Re: installazione oci8 su php7

2018-07-05 Per discussione Piviul

Il 05/07/2018 10:18, Piviul ha scritto:

[...]
Qualcuno ha qualche idea su come risolvere?
Potrebbe essere un baco di php segnalato e risolto nel 5 ma poi 
ritornato nella versione 7[¹]?


Sembrerebbe strano perché ho provato anche a compilare oci8 con la 7.0 e 
la 7.2 prese da https://deb.sury.org/ ma c'è sempre lo stesso problema...


Se qualcuno ha qualche consiglio... non so davvero dove sbattere la testa.

Provo aprire un bug report?

Piviul

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



installazione oci8 su php7

2018-07-05 Per discussione Piviul
Ciao a tutti, ho fatto l'upgrade di un server di sviluppo a stretch in 
cui era installato oci8 con php. Per installare oci8 bisogna scaricare 
dal sito oracle l'instant client e generare l'estensione tramite pecl. 
Tutto sembra essere andato a buon fine ma poi l'estensione non viene 
caricata perché mancano dei riferimenti, o meglio i riferimenti vanno 
bene è che non vengono trovati! Questo è l'output di ldd:



# ldd /usr/lib/php/20151012/oci8.so
linux-gate.so.1 (0xb7708000)
libclntsh.so.12.1 => /opt/oracle/instantclient/libclntsh.so.12.1 
(0xb481a000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb464c000)
libnnz12.so => not found
libons.so => not found
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb4647000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb45f2000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb45d5000)
libnsl.so.1 => /lib/i386-linux-gnu/libnsl.so.1 (0xb45b9000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb45b)
libaio.so.1 => /lib/i386-linux-gnu/libaio.so.1 (0xb45ad000)
libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xb4595000)
/lib/ld-linux.so.2 (0xb7709000)
libclntshcore.so.12.1 => not found


eppure in /opt/oracle/instantclient/ i file non trovati ci sono:

# ls -1 /opt/oracle/instantclient/{libnnz12.so,libons.so,libclntshcore.so.12.1}
/opt/oracle/instantclient/libclntshcore.so.12.1
/opt/oracle/instantclient/libnnz12.so
/opt/oracle/instantclient/libons.so


Qualcuno ha qualche idea su come risolvere?

Grazie

Piviul