utilizzo libreria Spatialite su host no root

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

utilizzo libreria Spatialite su host no root

francesco marucci-2
gentile lista,
so che ci vedremo tutti a Genova la prossima settimana ma non posso
attendere per risolvere questo dubbio.

vorrei tanto usare un database sqlite+spatialite in un host sul quale non
ho diritti di root e quindi non ho la possibilità di installare nulla.

la prima domanda é: si può fare?

a me piacerebbe accedere in Python, ma alla fine ho ripiegato su PHP,
seguendo queste chiare istruzioni:
http://www.gaia-gis.it/gaia-sins/spatialite-cookbook/html/php.html

l'host in questione è una RedHat ed è già presente Sqlite 3.8.10.2 e PHP
5.6.29.

ho provato quindi a copiare libspatialite.so e/o mod_spatialite.so (da me
presenti in locale), ma l'errore PHP alla riga:
$db->loadExtension('mod_spatialite.so');

è il seguente:

"mod_fcgid: stderr: PHP Warning: SQLite3::loadExtension(): /var/www/vhosts/
alveo.coop/httpdocs/sqlite3_ext/mod_spatialite.so.so: cannot open shared
object file: No such file or directory"

sono davvero fuori strada?
è una cosa che non si può fare senza i permessi di root?

è necessario configurare la variabile di sistema "LD_LIBRARY_PATH"?
(che non posso fare...)

cosa posso chiedere di "poco invasivo" al mio gestore dell'host per usare
spatialite con PHP o con Python?

attendo vostro prezioso parere.
grazie.

saluti,
francesco

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
807 iscritti al 31/03/2016
Reply | Threaded
Open this post in threaded view
|

Re: utilizzo libreria Spatialite su host no root

a.furieri
On Mon, 30 Jan 2017 12:34:53 +0100, francesco marucci wrote:

> gentile lista,
> so che ci vedremo tutti a Genova la prossima settimana ma non posso
> attendere per risolvere questo dubbio.
>
> vorrei tanto usare un database sqlite+spatialite in un host sul quale
> non
> ho diritti di root e quindi non ho la possibilità di installare
> nulla.
>
> la prima domanda é: si può fare?
>

ciao Francesco,

se intendi "nulla" alla lettera la risposta e' NO.

spatialite e' un modulo di estensione dinamica per SQLite, quindi
per attivarla e' assolutamente indispensabile installare il
relativo modulo a caricamento dinamico (mod_spatialite), che e'
materialmente una libreria dinamica (.so) sulle piattaforme Linux
mentre e' una DLL sulle piattaforme Windows.

a sua volta mod_spatialite presenta svariate altre dipendenze
(geos e proj.4 giusto per limitarsi alle principali), che
naturalmente devono essere istallate a loro volta per consentire
il caricamento di mod_spatialite.

infine, dopo che avrai copiato "da qualche parte" occorre
modificare le regole di sistema per la ricerca delle librerie
in modo tale che includano anche "da qualche parte"; in assenza
di tutti questi prerequisiti spatialite non parte.


> a me piacerebbe accedere in Python, ma alla fine ho ripiegato su PHP
>

anche con Python e PHP il succo non cambia (anzi, se possibile si
complica ulteriormente). alla fine comunque dovrai pur caricare
mod_spatialite e tutte le dipendenze che si porta dietro, ma
l'ambiente tipico del linguaggio potrebbe aggiungere altri
vincoli ulteriori.


> seguendo queste chiare istruzioni:
> http://www.gaia-gis.it/gaia-sins/spatialite-cookbook/html/php.html
>
> l'host in questione è una RedHat ed è già presente Sqlite 3.8.10.2 e
> PHP
> 5.6.29.
>
> ho provato quindi a copiare libspatialite.so e/o mod_spatialite.so
> (da me
> presenti in locale), ma l'errore PHP alla riga:
> $db->loadExtension('mod_spatialite.so');
>
> è il seguente:
>
> "mod_fcgid: stderr: PHP Warning: SQLite3::loadExtension():
> /var/www/vhosts/
> alveo.coop/httpdocs/sqlite3_ext/mod_spatialite.so.so: cannot open
> shared
> object file: No such file or directory"
>
> sono davvero fuori strada?
> è una cosa che non si può fare senza i permessi di root?
>

se ricordo bene (ma non ci giuro) PHP esige che tutti gli eventuali
moduli dinamici per SQLite devono stare in una directory ben precisa
(una delle sue, ben protette ed accessibili solo da root).
se non erro c'e' un file config che consente di rimappare la
location di questa dir, ma ovviamente per editare un file config
dovrebbero servire poteri di root.


> è necessario configurare la variabile di sistema "LD_LIBRARY_PATH"?
> (che non posso fare...)
>
> cosa posso chiedere di "poco invasivo" al mio gestore dell'host per
> usare
> spatialite con PHP o con Python?
>

il problema e' molto semplice: caricare un modulo di estensione
dinamica significa comunque caricare codice eseguibile nel sistema,
il che apre un'infinita' di potenziali vulnerabilita' (malware etc).
non e' affatto irragionevole che Linux esiga che operazioni di questa
portata vengano effettuate solo da root e siano proibite per tutti
gli users non privilegiati; e' il minimo per evitare di aprire
falle di sicurezza che potrebbero essere mortali.

l'intervento meno invasivo possibile che potresti chiedere al
tuo sysadmin e' di convincerlo ad installare i pacchetti di
sistema spatialite: esistono per Debian, Fedora ed altri Linux,
ma dubito molto che siano disponibili per RedHat e CentOS.
il fatto che si tratti di roba ufficialmente supportata dovrebbe
bastare a convincerlo che non e' roba pericolosa per la sicurezza;
nel caso di Python e PHP questo da solo potrebbe facilmente non
essere sufficiente, forse potrebbe servire creare dei symlink
o trafficare sui files config (dipende caso per caso).

ciao Sandro
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
807 iscritti al 31/03/2016
Reply | Threaded
Open this post in threaded view
|

Re: utilizzo libreria Spatialite su host no root

francesco marucci-2
grazie Sandro,
sempre chiaro e puntuale.

in realtà mentre scrivevo mi sono reso conto della "assurdità" della mia
richiesta.

sarebbe stato davvero bello poter contare su Spatialite anche in ambienti
host non dedicati, che ovviamente hanno dei costi mooolto minori (due
ordini di grandezza inferiori) rispetto a server personalizzati.
perchè ovviamente nel servizio che ho presso quel provider non è neppure
prevista l'installazione di pacchetti aggiuntivi.

certo che, se Spatialite fosse già compreso nel core di Sqlite...

ne fantastichiamo insieme a Genova!

un saluto a tutti,
francesco



Il 30/gen/2017 01:06 PM, <[hidden email]> ha scritto:

> ciao Francesco,
>
> se intendi "nulla" alla lettera la risposta e' NO.
>
>
>
>

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
807 iscritti al 31/03/2016
Reply | Threaded
Open this post in threaded view
|

Re: utilizzo libreria Spatialite su host no root

a.furieri
On Mon, 30 Jan 2017 15:57:54 +0100, francesco marucci wrote:
> certo che, se Spatialite fosse già compreso nel core di Sqlite...
>
> ne fantastichiamo insieme a Genova!
>

Francesco,

purtroppo e' un desiderio praticamente impossibile, e per
ottimi motivi tecnici.

SQLite e' verosimilmente il singolo package piu' diffuso al
mondo; si parla ragionevolmente di qualcosa sopra al miliardo
di installazioni. basti solo dire che e' un componente fondamente
di Android,  di iOS e dall'anno scorso pure di Windows Mobile.

cio' che rende SQLite cosi' tanto appetitoso e' la sua
elementare semplicita' e leggerezza: circa 500 KB di codice
binario, un singolo sorgente C monolitico da compilare, gira
su qualsiasi piattaforma, anche le piu' stravaganti.

spatialite e' decisamente molto piu' "cicciona", sono
circa 6 MB di codice binario.
ma soprattutto si tira dietro una decina di altre librerie,
dalla geos alla proj.4 etc; ed alcune di queste (p.es. la
geos) sono abbastanza rognose da portare su tutte le
piattaforme, specie quelle piu' esoteriche o quelle
piu' leggere (smartphones, embedded devices etc).

ok, alla fine e' possibilissimo fare girare spatialite
anche sulle "trappolette" piu' leggere, p.es. i ragazzi
di GeoPaparazzi ci riescono ad occhi chiusi.
resta il fatto che richiede molta piu' complessita'
(piu' tempo, piu' fatica) rispetto al porting del solo
sqlite nudo e crudo.

se infine consideri che di quel miliardo di potenziali
utenti quelli a cui potrebbe anche solo vagamente
interesare un supporto Spatial SQL saranno sicuramente
meno di un milione (stima ultra-super-generosa), capisci
bene che l'operazione non si reggebbe in piedi.

in fondo spatialite non e' poi troppo diverso da PostGIS;
alla fine si riesce sempre a farlo girare dappertutto, ma
rimane pur sempre un oggetto abbastanza complesso e quindi
piuttosto laborioso da installare (disponendo dei diritti
di root, ovviamente).

ciao Sandro

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
807 iscritti al 31/03/2016