Il linguaggio di programmazione PHP
 

modulo Firebird/Interbase per php su Linux

Michele 19 Gen 2017 19:45
Buongiorno a tutti.

Ho un Firebird 3.0.1 installato su Linux Ubuntu 16.04.1 LTS.
Se provo ad installare il modulo Firebird/Interbase per php:

apt-get update;
apt-get install php7.0-interbase;
service apache2 restart;

alla richiesta di phpinfo() ottengo:

Run-time Client Library Version: LI-V6.3.4.26856 Firebird 2.5

e le query non funzionano:

Warning: ibase_connect(): connection rejected by remote interface in...
ecc. ecc.

Come faccio a ottenere:

Run-time Client Library Version: WI-V6.3.1.32609 Firebird 3.0

(Ho ricopiato la riga da una funzionante installazione su Windows).

Grazie.

--
Michele Giordano
parolescritte.it
Leonardo Serni 20 Gen 2017 00:10
On Thu, 19 Jan 2017 19:45:55 +0100, Michele <michele.giordano@parolescritte.it>
wrote:

>Ho un Firebird 3.0.1 installato su Linux Ubuntu 16.04.1 LTS.
>Se provo ad installare il modulo Firebird/Interbase per php:

> apt-get update;
> apt-get install php7.0-interbase;
> service apache2 restart;

>alla richiesta di phpinfo() ottengo:

> Run-time Client Library Version: LI-V6.3.4.26856 Firebird 2.5

OK, php7.0-interbase per motivi non chiari si porta dietro firebird2.5-common.

D'altra parte se lì c'è Firebird 3.0.1 c'è da sperare che da qualche parte
una libfbclient.so.3.x
a cercare bene ci sia.

Quindi, in obbedienza ai sani principi di Vlad Tepes - che era voivoda di
Valacchia, mica pizza e
fichi - io proverei (da root, perché i veri danni si fanno così):

cd /usr/lib/x86_64-linux-gnu
mv libfbclient.so.2.5.4 libfbclient.so.2.5.4.bak
rm -f libfbclient.so.2.5
rm -f libfbclient.so.2
find / -name "libfbclient.so.3.*"

# Diciamo che la trovi in /usr/local/firebird/lib/libfbclient.so.3.0.1

cp /usr/local/firebird/lib/libfbclient.so.3.0.1 .
ln libfbclient.so.3.0.1 libfbclient.so.2.5.4 # Questo perché sisammai
ldconfig
ln -s libfbclient.so.3.0.1 libfbclient.so.2.5
ln -s libfbclient.so.2.5 libfbclient.so.2

e vedi che succede. Alla peggio, il ******* ".bak" è disponibile.

Leonardo
--

A terrible beauty is born.
- W. B. Yeats, Easter 1916
Michele 20 Gen 2017 11:16
In data gennaio 2017 alle ore 00:10:37, Leonardo Serni =

<lserni@gmail.com> ha scritto:

> OK, php7.0-interbase per motivi non chiari si porta dietro =

> firebird2.5-common.

Non puoi immaginare il piacere che fa leggere queste parole per uno che =
=

mastica Linux da 20 giorni. "Per motivi non chiari" ho perso solo una =

serata, prima di sospettare che non sono (del tutto) stupido.

>
> D'altra parte se l=EC c'=E8 Firebird 3.0.1 c'=E8 da sperare che da qua=
lche =

> parte una libfbclient.so.3.x
> a cercare bene ci sia.

E difatti...

> Quindi, in obbedienza ai sani principi di Vlad Tepes - che era voivoda=
=

> di Valacchia, mica pizza e
> fichi - io proverei (da root, perch=E9 i veri danni si fanno cos=EC):
>
> cd /usr/lib/x86_64-linux-gnu
> mv libfbclient.so.2.5.4 libfbclient.so.2.5.4.bak
> rm -f libfbclient.so.2.5
> rm -f libfbclient.so.2
> find / -name "libfbclient.so.3.*"
>
> # Diciamo che la trovi in =

> /usr/local/firebird/lib/libfbclient.so.3.0.1

No:
/opt/firebird/lib/libfbclient.so.3.0.1
/usr/lib/libfbclient.so.3.0.1
ho provato:
root@hector:/# cp /usr/lib/libfbclient.so.3.0.1 .

>
> cp /usr/local/firebird/lib/libfbclient.so.3.0.1 .
> ln libfbclient.so.3.0.1 libfbclient.so.2.5.4 # Questo perch=E9 =
=

> sisammai ldconfig
> ln -s libfbclient.so.3.0.1 libfbclient.so.2.5
> ln -s libfbclient.so.2.5 libfbclient.so.2
>
> e vedi che succede. Alla peggio, il ******* ".bak" =E8 disponibile.

Succede che funziona.
Ora tre cose:

1. GRAZIE
2. una curiosit=E0: sei andato (quasi) a colpo sicuro perch=E9 hai avuto=
lo =

stesso problema usando Firebird+php, oppure sei bravo e basta?
3. mi spieghi che cosa ho fatto, di preciso, mentre vado a compulsare un=
=

manuale di comandi Linux?


-- =

Michele Giordano
parolescritte.it
Alessandro Pellizzari 20 Gen 2017 12:15
On 19/01/2017 23:10, Leonardo Serni wrote:

> OK, php7.0-interbase per motivi non chiari si porta dietro firebird2.5-common.

Perché contiene ******* necessari ai client (le config), e in Ubuntu 16.04
c'e firebase 2.5, non il 3.x

Probabilmente il 3.x è stato installato da un PPA esterno o direttamente
dai pacchetti scaricati dal sito.

Linkare la libreria da 2.x a 3.x funziona a colpi di ******* ma non durerà
per sempre. :D

E al primo aggiornamento di sicurezza da Ubuntu ti ritrovi la 3.x
sovrascritta con la 2.x perché l'hai linkata.

La cosa giusta da fare in questo caso (a parte trovare una versione di
PHP7 compilata per firebase 3) è compilarsi l'estensione di PHP a mano.

O usare la 2.x inclusa nella distro.

Bye.
Michele 20 Gen 2017 15:14
In data gennaio 2017 alle ore 12:15:56, Alessandro Pellizzari =

<shuriken@amiran.it> ha scritto:



> La cosa giusta da fare in questo caso (a parte trovare una versione di=
=

> PHP7 compilata per firebase 3) =E8 compilarsi l'estensione di PHP a ma=
no.
>
> O usare la 2.x inclusa nella distro.
>

D'accordo.
Ma siccome per il momento sto solo facendo prove, non potrei ricaricare =
=

un'altra distribuzione (Debian (forse no, =E8 la fonte di Ubuntu, o no?)=
, =

CentOS, FantaLinux) e sperare che l=EC, sia Firebird 3, sia php, si parl=
ino =

meglio?
Grazie.

-- =

Michele Giordano
parolescritte.it
Alessandro Pellizzari 20 Gen 2017 17:25
On 20/01/2017 14:14, Michele wrote:

> Ma siccome per il momento sto solo facendo prove, non potrei ricaricare
> un'altra distribuzione (Debian (forse no, è la fonte di Ubuntu, o no?),
> CentOS, FantaLinux) e sperare che lì, sia Firebird 3, sia php, si
> parlino meglio?

La 3.x è presente in Debian testing ed è prevista per Ubuntu 17.04 (che
uscirà ad aprile, come dice il nome, e NON È una LTS, quindi occhio se
vuoi usarlo sui server).


Se stai solo sperimentando, e visto che non sei esperto di Linux, io
proverei a installare Debian testing.

Ma, a meno che non ti serva assolutamente Firebird 3, usare Ubuntu 16.04
o 16.10 con i pacchetti standard della 2.5 sarebbe la cosa migliore.

Bye.
Leonardo Serni 20 Gen 2017 19:59
On Fri, 20 Jan 2017 11:16:40 +0100, Michele <michele.giordano@parolescritte.it>
wrote:

>> Quindi, in obbedienza ai sani principi di Vlad Tepes - che era voivoda
>> di Valacchia, mica pizza e fichi - io proverei (da root, perché i veri
>> danni si fanno così):

>2. una curiosità: sei andato (quasi) a colpo sicuro perché hai avuto lo
>stesso problema usando Firebird+php, oppure sei bravo e basta?

Nessuna delle due. Ho una seconda professione come garzone di macelleria :-D

>3. mi spieghi che cosa ho fatto, di preciso, mentre vado a compulsare un
>manuale di comandi Linux?

Hai fatto una cosa brutta, ovvero hai detto al sistema di usare la lib3.0 al
posto della 2.5. Come ha fatto notare Alessandro, la cosa non è gratis - nel
senso che si porta dietro un botto di rischi.

Specificamente, qualsiasi software che si aspetti una 2.5 purosangue e abbia
fiducia in qualche quirk che nel frattempo è cambiato (*in teoria* non ce ne
dovrebbero essere, ma la pratica è sempre diversa dalla teoria) gli piglierà
un colpo.

Spero & suppongo che di questi software sulla tua macchina non ce ne sia, ma
se mai dovessi installare, ricordati che ora hai un firebird instabile.

Leonardo
--

A terrible beauty is born.
- W. B. Yeats, Easter 1916
Michele 20 Gen 2017 20:42
In data gennaio 2017 alle ore 19:59:20, Leonardo Serni <lserni@gmail.co=
m> =

ha scritto:


>
> Hai fatto una cosa brutta, ovvero hai detto al sistema di usare la =

> lib3.0 al
> posto della 2.5. Come ha fatto notare Alessandro, la cosa non =E8 grat=
is - =

> nel
> senso che si porta dietro un botto di rischi.
>
> Spero & suppongo che di questi software sulla tua macchina non ce ne =

> sia, ma
> se mai dovessi installare, ricordati che ora hai un firebird instabile=
.

Ricevuto. Grazie.

-- =

Michele Giordano
parolescritte.it
Michele 20 Gen 2017 20:58
In data gennaio 2017 alle ore 17:25:45, Alessandro Pellizzari =

<shuriken@amiran.it> ha scritto:



> La 3.x =E8 presente in Debian testing ed =E8 prevista per Ubuntu 17.04=
(che =

> uscir=E0 ad aprile, come dice il nome, e NON =C8 una LTS, quindi occhi=
o se =

> vuoi usarlo sui server).

Questa =E8 l'idea. Ma il prossimo LTS =E8 18.10 (come dice il nome)?

>
> Se stai solo sperimentando, e visto che non sei esperto di Linux, io =

> proverei a installare Debian testing.

Ahim=E8, non =E8 prevista fra le distribuzioni sul VPS che uso.

>
> Ma, a meno che non ti serva assolutamente Firebird 3, usare Ubuntu 16.=
04 =

> o 16.10 con i pacchetti standard della 2.5 sarebbe la cosa migliore.

Il passaggio da 2.5 a 3.x =E8 quasi irreversibile... (per esempio, =E8 =

difficile rinunciare ai cursori bidirezionali).

Comunque grazie. Ho imparato un mucchio di cose.


-- =

Michele Giordano
parolescritte.it
Alessandro Pellizzari 20 Gen 2017 22:43
Il Fri, 20 Jan 2017 20:58:16 +0100, Michele ha scritto:

> Questa è l'idea. Ma il prossimo LTS è 18.10 (come dice il nome)?

Le LTS escono ogni 2 anni, quindi 14.04, 16.04 e la prossima sarà 18.04
(a meno che nel frattempo non cambino idea, ma ormai è consolidato).

Bye.
Michele 4 Feb 2017 22:12
In data gennaio 2017 alle ore 00:10:37, Leonardo Serni <lserni@gmail.co=
m> =

ha scritto:

> OK, php7.0-interbase per motivi non chiari si porta dietro =

> firebird2.5-common.
>
> D'altra parte se l=EC c'=E8 Firebird 3.0.1 c'=E8 da sperare che da qua=
lche =

> parte una libfbclient.so.3.x
> a cercare bene ci sia.
>
> Quindi, in obbedienza ai sani principi di Vlad Tepes - che era voivoda=
=

> di Valacchia, mica pizza e
> fichi - io proverei (da root, perch=E9 i veri danni si fanno cos=EC):
>
> cd /usr/lib/x86_64-linux-gnu
> mv libfbclient.so.2.5.4 libfbclient.so.2.5.4.bak
> rm -f libfbclient.so.2.5
> rm -f libfbclient.so.2
> find / -name "libfbclient.so.3.*"
>
> # Diciamo che la trovi in =

> /usr/local/firebird/lib/libfbclient.so.3.0.1
>
> cp /usr/local/firebird/lib/libfbclient.so.3.0.1 .
> ln libfbclient.so.3.0.1 libfbclient.so.2.5.4 # Questo perch=E9 =
=

> sisammai ldconfig
> ln -s libfbclient.so.3.0.1 libfbclient.so.2.5
> ln -s libfbclient.so.2.5 libfbclient.so.2
>
> e vedi che succede. Alla peggio, il ******* ".bak" =E8 disponibile.

Per capire...
Dopo aver fatto quello che suggerisci (tranne gli ultimi due comandi, =

niente "sisammai", per semplicit=E0) mi ritrovo:

root@vmi97986:/usr/lib/x86_64-linux-gnu# ls -il libfbclient*
14949157 lrwxrwxrwx 1 root root 20 Aug 5 2015 libfbclient.so.2 ->=
=

libfbclient.so.2.5.4
14949163 -rwxr-xr-x 2 root root 1816176 Feb 4 21:29 libfbclient.so.2.5.=
4
14949153 -rw-r--r-- 1 root root 869448 Aug 5 2015 =

libfbclient.so.2.5.4.bak
14949163 -rwxr-xr-x 2 root root 1816176 Feb 4 21:29 libfbclient.so.3.0.=
1

se faccio:

root@vmi97986:/usr/lib/x86_64-linux-gnu# rm libfbclient.so.2.5.4
root@vmi97986:/usr/lib/x86_64-linux-gnu# rm libfbclient.so.3.0.1
root@vmi97986:/usr/lib/x86_64-linux-gnu# ln -s =

/opt/firebird/lib/libfbclient.so.3.0.1 libfbclient.so.2.5.4

funziona.
Lo so che spesso "funziona" vuol dire "funziona per=F2", ma in questo ca=
so: =

qual =E8 la differenza?
=C8 necessario l ******* link? Perch=E9?
Grazie.

-- =

Michele Giordano
parolescritte.it

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio di programmazione PHP | Tutti i gruppi | it.comp.www.php | Notizie e discussioni php | Php Mobile | Servizio di consultazione news.