Newsgroup: it.comp.os.linux.sys
Titolo: apache chrootato, php mancato

Oggi ho dedicato tutto il pomeriggio alla creazione di una chrooted jail per
Apache, e tutto e' andato bene finche' non ho provato ad includere anche
PHP...
Il problema fondamentale sta quando provo a connettermi al server MySQL: al
posto dei contenuti desiderati, nella pagina appare la notifica di un
errore:
Fatal error: Call to undefined function: mysql_connect() in
/var/www/madbob/index.php on line 52
A cosa potrebbe esser dovuto cio'? Posso desumere che non si tratti di un
errore nella connessione al server del database, ma proprio alla rilevata
mancanza della libreria che contiene la funzione sopra citata, eppure ho
installato libapache-mod-php4, php4-mysql, php4-common (e php4,
naturalmente) e non sono riuscito a cavare un ragno dal buco...
Qualcuno ha qualche suggerimento? Molto probabilmente ho dimenticato qualche
"pezzo": sapreste dirmi quale?
Grazie :-)
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 naturalmente) e non sono riuscito a cavare un ragno dal buco...
Giusta intuizione:
# ls /usr/lib/php4/20020429/
apd.so  idn.so  imap.so  ldap.so  mysql.so  pam_auth.so  pgsql.so  ps.so  sqlite.so  syck.so
Bye.


Mumble mumble... Sbagliero', ma la libreria che dovrebbe fornire la funzione
mancante dovrebbe essere php4-mysql, rappresentata nello specifico da
mysql.so. Ma tal libreria l'ho installata, ed il file e' presente (al posto
giusto) sia dentro che fuori la chrooted jail!
A quanto mi dice 
http://www.debian.org/distrib/packages
 le altre sono
librerie per il profiling, per i postscript, per altri tipi di database, ma
quella che riguarda MySQL e' proprio mysql.so...
Forse non ho ben configurato Apache? O PHP? I miei .conf sono piu' o meno
quelli di default (per Apache ho cambiato ben poco, ma quello di PHP non
l'ho toccato): e' necessario forse apportare qualche modifica per indicare
il posto dove deve cercare le librerie?
Faccio notare che la gabbia chrootata e' stata costruita con makejail,
dunque si e' gia' occupato lui di "ldconfigurare" il tutto...


Ok, problema risolto: ho installato nella chrooted jail anche il pacchetto
libmysqlclient (anche se mi sembra strano che la mancata referenza alla
funzione risiedesse in tal libreria... Boh... Ci sono arrivato con un lsof
su una istanza di Apache non chrootata, ed in ogni caso funziona :-) ) ed ho
bestemmiato un poco prima di capire che dovevo mettere il socket del server
MySQL direttamente nella jail.
A questo proposito azzardo una domanda che va forse un tantino OT nel thread
in oggetto (nel caso, ne apro un altro, anche perche' avrei numerose domande
su chroot...): nell'ottica della sicurezza che si vuole raggiungere con un
server in ambiente chroot'ed, e' piu' sicuro
1) far girare MySQL come server e far connettere Apache direttamente via
rete (con un loopback, ma pur sempre con uno stream di rete);
2) "hardlinkare" il socket standard di MySQL all'interno della jail
(soluzione che ho trovato qua e la' googlando, e che in ogni caso non sono
riuscito ad implementare [non ho molta confidenza con ln :-) ] );
3) dirigere direttamente il socket di MySQL nella jail (quel che ho fatto
io)
???
Grazie per le delucidazioni :-)


 rete (con un loopback, ma pur sempre con uno stream di rete);
Questa.
Anche se in questo caso e` abbastanza relativo. Se ti bucano apache e
installano una pagina php per accedere al DB tramite le pass che fregano
dai siti web, che MySQL sia su socket Unix, TCP, in rete locale o su
Internet cambia poco.
Bye.