Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

modulo Firebird/Interbase per php su Linux

134 views
Skip to first unread message

Michele

unread,
Jan 19, 2017, 1:45:57 PM1/19/17
to
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

unread,
Jan 19, 2017, 6:10:43 PM1/19/17
to
On Thu, 19 Jan 2017 19:45:55 +0100, Michele <michele....@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 file ".bak" è disponibile.

Leonardo
--

A terrible beauty is born.
- W. B. Yeats, Easter 1916

Michele

unread,
Jan 20, 2017, 5:16:43 AM1/20/17
to
In data gennaio 2017 alle ore 00:10:37, Leonardo Serni
<lse...@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ì c'è Firebird 3.0.1 c'è da sperare che da qualche
> 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é 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

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é
> 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 file ".bak" è disponibile.

Succede che funziona.
Ora tre cose:

1. GRAZIE
2. una curiosità: sei andato (quasi) a colpo sicuro perché 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

unread,
Jan 20, 2017, 6:15:58 AM1/20/17
to
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 file 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 culo, 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

unread,
Jan 20, 2017, 9:14:55 AM1/20/17
to
In data gennaio 2017 alle ore 12:15:56, Alessandro Pellizzari
<shur...@amiran.it> ha scritto:



> 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.
>

D'accordo.
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?

Alessandro Pellizzari

unread,
Jan 20, 2017, 11:25:48 AM1/20/17
to
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

unread,
Jan 20, 2017, 1:59:28 PM1/20/17
to
On Fri, 20 Jan 2017 11:16:40 +0100, Michele <michele....@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.

Michele

unread,
Jan 20, 2017, 2:42:34 PM1/20/17
to
In data gennaio 2017 alle ore 19:59:20, Leonardo Serni <lse...@gmail.com>
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 è gratis -
> 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

unread,
Jan 20, 2017, 2:58:18 PM1/20/17
to
In data gennaio 2017 alle ore 17:25:45, Alessandro Pellizzari
<shur...@amiran.it> ha scritto:



> 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).

Questa è l'idea. Ma il prossimo LTS è 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è, non è 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 è quasi irreversibile... (per esempio, è
difficile rinunciare ai cursori bidirezionali).

Comunque grazie. Ho imparato un mucchio di cose.


--
Michele Giordano
parolescritte.it

Alessandro Pellizzari

unread,
Jan 20, 2017, 4:43:36 PM1/20/17
to
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

unread,
Feb 4, 2017, 4:12:53 PM2/4/17
to
In data gennaio 2017 alle ore 00:10:37, Leonardo Serni <lse...@gmail.com>
ha scritto:

> 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 file ".bak" è disponibile.

Per capire...
Dopo aver fatto quello che suggerisci (tranne gli ultimi due comandi,
niente "sisammai", per semplicità) 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ò", ma in questo caso:
qual è la differenza?
È necessario l'hard link? Perché?
0 new messages