Newsgroup: it.comp.www.server
Titolo: Apache -> Trucchetto Ninja

Ciao,
ho la necessità di dare ad ogni mio iscritto un indirizzo del tipo
www.mioportale.com/nickname
 ...
siccome gli iscritti saranno super tanti, è ovvio che non posso
creare 5.000 cartelle diverse, una per ogni nickname,
per ovvi problemi di gestibilità della cosa ...
e non posso nemmeno creare 5.000 alias diversi !
soprattutto perché per renderli effettivi apache va ravviato no ?
ve lo immaginate ? con un iscrizione di nuovo utente
ogni 5 minuti .... eheheheh
e, tanto meno, posso creare 5.000 subdomains !
insomma ... l'unica soluzione che mi è venuta in mente è questa.
le cartelle non le creo ... e quando uno mi cerca
www.mioportale.com/pipparello
 .... non esistendo, mi
viene sparata una mia 404 preparata ad hoc ....
ho già provato ... nella 404 elaboro il request_uri che viene
fatto dal browser al server ... ed in base a quello, ci estrapolo
la parte finale ("/pipparello") ... in modo da effettuare il redirect
alla pagina di quell'utente ...
che ne dite ? è pure follia ?
ho visto che funziona alla perfezione ...
la pagina 404 accederà al DB Mysql per verificare se l'utente
estratto dal request_uri è un valido nickname registrato ....
in caso contrario, si presenta come la classica 404 di pagina
non trovata .... quindi in caso di 
www.mioportale.com/mozzarella
non ci sarebbero problemi.
vedete eventuali problemi ?
io gli unici a cui ho pensato potrebbero essere un error_log
mostruoso ... ma quello me ne po fregà de meno perché
posso far sgobbare il buon vecchio CRON ogni giorno per
ripulirlo ...
per quanto riguarda l'accesso al DB, non penso che una misera
query di quel genere sovraccaricherà troppo il sistema ...
anche perché se non la faccio nella pagina 404, da un'altra parte
devo comunque farla per controllare la correttezza del nick ...
idee ed osservazioni in merito ? soluzioni migliori più "pulite" ?
GRAZIE !
Micky
p.s
ho visto che bazzichi anche da queste parte ....
o tu, onnipresente Leonardo ;-)
guardiamo se riesci ad aiutarmi anche qui ...
lo so, lo so, ormai è diventata una persecuzione ...
mi creo appositamente dei problemi inerenti agli NG che segui ;-)
eheheheheheheheheh
... ma non riesco tuttora ad escogitare qualche problema credibile per
postare su it.animali.difesa_dello_scoiattolo_tibetano  :-)

 idee ed osservazioni in merito ? soluzioni migliori più "pulite"
Francamente non capisco cosa vuoi fare... Allora:
Se hai deciso di dare housting gratuito, le cartelle dovrai cmq 
crearle e con uno script php è anche facile farlo in fase di conferma 
di registrazione. Io ho 10000 utenti e non ho nessun problema di 
quelli da te menzionati, con una media di 30 iscrizioni al giorno.
Se invece il tuo mioportale/pincopallino non è per fare spazio allora 
spiega cosa vuoi fare, perchè non è che mi è molto chiaro :)
-- 
Ciao, Dmitry
FIAG - Free It-Alt Group | X-Planet Community
http://www.fiag.it
       | 
http://www.x-planet.org

 Se hai deciso di dare housting
"housting": oddio, perche' mi e' venuto in mente il telefilm "L'uomo da 
sei milioni di dollari?" O__O
:)
sp-

 "L'uomo da sei milioni di dollari?" O__O
lol :) hai ragione. Ma i miei errori di battitura sono noti in mezza 
usenet :)


prima di tutto, grazie dell'interessamento e dell'aiuto ...
allora, se creo le cartelle come dici, avrò una cosa del genere :
www.portale.it/pinco
 ...
www.portale.it/pallino
 ...
www.portale.it/pluto
 ....
ecc.ecc.
tutte in root ! ...
e non posso metterle in una sotto cartella tipo "utente" ...
www.portale.it/utente/pinco
 ...
www.portale.it/utente/pallino
 ...
www.portale.it/utente/pluto
 ....
proprio perché l'indirizzo DEVE essere 
PORTALE.IT
 / NOMEUTENTE ...
ecco perché avevo pensato alla soluzione della 404 ...
altrimenti dovrei mappare, per ogni singolo utente, un ALIAS, no ?!?!
tipo 
www.portale.it/pinco
 => 
www.portale.it/utente/pinco
 ...
e questo sarebbe mostruoso ... mi ritroverei con un httpd.conf di 30 MB ....
lento come la morte secca .... con migliaia e migliaia di ALIAS ...
( visto che gli iscritti supereranno sicuramente le 50.000 unità ) ...
senza considerare, ripeto, l'avere 50.000 cartelle in ROOT ....
anche il client FTP si rifiuterebbe di aprirlo sto sito, EHEHEH
per questo dicevo che era "ovvio" che fosse ingestibile la cosa ...
____________________
altrimenti, che soluzioni ci sono ?!?
grazie nuovamente
p.s
non è un servizio di hosting, è solo un portale dove ognuno
avrà la sua sezione, 
www.portale.it
 / nickname

ah, per evitare fraintendimenti,
parlando di ROOT, intendevo la ROOT del sito ...
non la system root della linuxbox ;-)

 Micky
Prova a guardare su 
httpd.apache.org
 la documentazione di mod_rewrite e 
vedi se c'è qualcosa che possa fare al caso tuo.
-- 
Ciao
Morsac

 vedi se c'è qualcosa che possa fare al caso tuo.
grazie !
pero', ora sono mentalmente piu' incasinata che mai ...
essendo un modulo, in caso non fosse già attivo,
apache non deve riessere compilato, vero ?
c'è un modo per vedere se è già attivo sto modulo, senza spulciare
nell'httpd.conf  ?
( tipo phpinfo lo pesca sto valore ... ? )
______________________________
in ogni caso ... mi servirebbe capire come ne funzionerebbe la logica  ...
ho dato un'occhiata alla documentazione .... ma .....
prima di addentrarmi tra espressioni regolari, perl, e quant'altro ....
dovrei almeno capire se fa al caso mio o se ci perdero' solo delle ore.
hmm ... sto mod_rewrite mi dovrebbe fare il parsing dell'url ....
facendo una specie di "cloaking"  della cartella .... ?!?
tipo che digitando 
www.portale.it
 / utente / pippolo .... mi rimuoverebbe
quell " utente" al volo ? ...
( per rimuoverlo al volo, intendo solo visualmente agli occhi del
visitatore,
... ma che poi effettivamente punti fisicamente sempre alla sottocartella
utente / pippolo ... )
e quindi, al visitatore / browser apparirebbe come se esistesse
www.portale.it
 / pippolo ... ?!?
_________
oppure, avviene il contrario ?
e cioè, gli utenti digitando 
www.portale.it/pippolo
 .... ci viene messo
automaticamente
" / utente" in mezzo ?
( e anche qui, questo avverrebbe VISUALMENTE ... l'utente vede questo
cambiamento ... ?!?
oppure sono internalmente a livello di apache ... cioè il path dove va a
cercare i files .... )
insomma .... aiutooooooooOOOOOOOOOOOOOOO :-(


:Provate a guardare gli ingredienti del famoso Labello che si usa per
:le labbra screpolate: Butirrospermum Parkii (sperma di maiale).

lento come la morte secca .... con migliaia e migliaia di ALIAS ...
Nah. Puoi usare AliasMatch nella definizione del VirtualHost:
	...
        AliasMatch              ^/[a-z].*  /srv/www/test/htdocs/ux.php
</VirtualHost>
In questo caso dovrai usare, per le tue directories VERE, l'iniziale
maiuscola. Tutte le altre finiranno in bocca ad ux.php, che leggera'
$_SERVER['REQUEST_URI'] parsandolo con explode('/', ...) e...
A ben pensarci, invece dell'iniziale maiuscola e' meglio 
        AliasMatch              ^/[^_].*  /srv/www/test/htdocs/ux.php
e poi le tue directories vere iniziano per _. Questo perche', quando
si va di browser, la case sensitivity puo' essere... peculiare.
Cosi'
 
www.portale.it/_storie
e' la directory _storie,
 
www.portale.it/storie
e' l'utente "storie".
Leonardo


 Personalmente propenderei per la seconda.
beh, certamente, anch'io proprenderei per la seconda ...
ma ... non capisco come questo soluzione possa, da sola,
risolvere il problema di avere ste 50.000 cartelle in ROOT ...
il mio problema non è QUANDO crearle ste cartelle ...
ma DOVE ...
come ho detto, non posso creare in una sottocartella ... perché
il loro indirizzo, per il visitatore finale, dev'essere proprio
www.portale.it
 / nickname ...
quindi niente 
www.portale.it
 / utenti / nickname ...
come faccio ?
se ho frainteso la tua risposta e la soluzione è già
contenuta nel tuo post, mi scuso e ti chiedo
un po' piu' di illuminazione nei miei confronti ;-)
GRAZIE !

 si va di browser, la case sensitivity puo' essere... peculiare.
ECCO QUA !!!!!!!!!!!
CI AVREI GIURATO CHE MI AVRESTI RISOLTO IL PROBLEMA ...
è ESATTAMENTE ciò di cui avevo bisogno, preciso preciso al singolo BIT.
hey mi stai viziando sai ?!? eheheheh.
non so come sei messo nella vita privata, ma una donna smanettona
d'informatica come me, si fa innamorare proprio in questo modo ... altro che
fiori ;-)
ti consiglio di stare ... ehmm ... molto attento, eheheh :-)
do while ( 1 = 1 )
{
  LEONARDO TI RINGRAZIO INFINITAMENTE
}
loop

solo un' altra cosa solamente .... giurin giurello*
in caso volessi salvaguardare alcune cartelle dal non
finire in pasto ad aliasmatch ... come fo' ?
a questo punto la mia root č cosě composta :
_images
_includes
_files
_utenti ...
e quindi aliasmatch mi cattura tutti gli url che non
iniziano con "_" ... visto che in quel caso si tratta di utenti e non
cartelle ..
e fin qui ci siamo ... tutto perfetto come mi hai detto.
pero' mettiamo che voglio comunque avere una
cartella chiamata "pippo" ... senza underscore
iniziale .... ma che non venga catturata dal nostro
caro scritp custom ....
che non venga considerata un utente insomma ...
c'č un modo con cui posso escluderla da quell'alias match ?!?
intendo farglielo capire a priori....
non facendogli richiamare la nostra paginella custom ...
negando quell'espressione regolare con una controregola che escluda
"pippo" dall'essere associata via aliasmatch ...
( so che potrei fare questo controllo DOPO, dentro la pagina PHP custom
che mi processa gli URL che vengono chiappati .... ma devo
farlo PRIMA ....  insomma, non fare cascare per niente PIPPO
nell'aliasmatch )
_________________________
* ehmm ... ma le dita incrociate valgono anche via web ?

 un po' piu' di illuminazione nei miei confronti ;-)
continuo a non capir dove sia il problema. I casini creando migliai 
di cartelli li avresti con windows ma non con unix. mah..


{
Il ciclo in teoria funziona, in realta' ti da' un errore, perche' stai
assegnando 1 al simbolo 1 che e' una costante e non una variabile :-)
	do while ( 1 == 1)
...per quanto ci siano linguaggi bastardi tipo Visual Basic che non si
fanno problemi, visto che tu lavori in PHP e quello e' un errore molto
frequente...
Leonardo
-- 
Nach doiligh domhsa mo chailin a mholadh
'S ni he amhain mar bhi si or
Bhi si mar gath greine a dhul in eadan na gloinne
Is bhi sceimh mhna na finne le mo cailin or

di cartelli li avresti con windows ma non con unix. mah..
Pero' ha ragione, che se apre la root in FTP nun je passa cchiu'.
In questi casi si usa il trucco vecchio bacucco ma sempre buono:
	$ROOT/a/l/aldo
	$ROOT/b/r/uno
	$ROOT/c/a/rlo
	...
	$ROOT/z/a/zaza
Cosi' $ROOT ha al massimo 26 sottodirectory, ciascuna di esse, al
massimo, ne ha altre 26, e date due lettere non ci sono poi tutti
'sti nomi che inizino per quelle due lettere...
mara, mario, massimo, marietto, mariuccia, malu, machitemmuort...
...comunque vale la pena decidere cosa ci sta in quella dir, e se
sia possibile simularlo dinamicamente. Al limite
	SELECT html FROM virtualpages
		WHERE user='mario' AND page='index.html';
...uno pseudo file system in SQL :-)
Leonardo bòno pei backup


 assegnando 1 al simbolo 1 che e' una costante e non una variabile :-)
EHEHEHEHEHEH ! lo sai che ci avrei giurato che me l'avresti notato
e detto ?!?! ;-)
ebbene si ... lo so, lo so,
questa volta le mie manine dannose non hanno commesso
un bug ... ma era appositamente un "assegna 1 ad 1" ... come se questo
servisse per forzarlo infinito ancora di più, eheheh
____________________________
ora non smetterai mica di aiutarmi neh ? :-)
non vorrei averti spaventato con le mie avances spudorate :-)
naaaaahh .... donnina informatica che abbaia ... non morde ...
.... forse ;-)
senti ... sai dirmi niente di come posso risolvere quel "problema",
di cui il mio post sopra, dell'escludere determinati folders
dalla nostra trappolina aliasmatch ?
ri-grazie

> Pero' ha ragione, che se apre la root in FTP nun je passa cchiu'.
eheheh, esattamente,
per l'ennesima volta, solo tu Leonardo puoi capirmi :-)
senza contare che tutto quanto sarà sballottolato
tra Linux e Windows ...  per backup, manutenzioni varie,
blah blah blah
e purtroppo non posso fare tutto quanto Linux side.
e tra tarramenti, untarramenti, gzippamenti e ungizzippamenti vari ...
tremo all'idea di aprire un folder con 50.000 sottocartelle,
in Windows ...
non so se ci avete fatto caso, ma per inginocchiare un XP Professional
con 1 Giga di Ram, hard disk modello ultra alabarda spaziale power,
2,7 GHZ di CPU ... e contropalline varie .... basta cancellare
15.000 - 20.000 cartelle che contengano un migliaio di files ognuna ...
e tutto muore per minuti ! ... bleah.
uh .... non posso sempre usare il mio adorato " rm -rf  " ;-)
senza contare che le cartelle utenti non sono le uniche nel sito, ovviamente
!
quindi mi ritroverei a cercare magari una cartella "images" ...
in mezzo a magari 5.000 utenti che iniziano con la " i " ....
insomma, sarebbe un po' in stile fantozzi no ? :-)
e poi, comunque, dovrei sempre blacklistare dei nomi di folders "riservati"
...
se un utente mi si chiamasse "images" ... ovviamente questo cozzerebbe
con la cartella del sito ... e siccome le cartelle del sito sono, per ora,
una ventina,
ci sarebbe anche questo da tenere in conto ... per quanto improbabile
sia che uno si chiami "download" ... nun se sa mai su 50.000 cervelli
iscritti
quello che ti inventano ;-)
insomma, non mi sembra una soluzione pulita mettere tutto in ROOT.

 ( tipo phpinfo lo pesca sto valore ... ? )
Uhm, grep -i LoadModule httpd.conf non è complicatissimo
Altrimenti (ma solo per i moduli compilati dentro l'eseguibile) httpd -l
-- 
Ciao
Morsac

dalla nostra trappolina aliasmatch ?
Non credo si possa. Oddio, potresti provare, ma non garantisco che non
esploda tutto, a mettere un no-alias:
	Alias	/pippo(.*)	/srv/www/htdocs/pippo$1
prima della riga-chiave... non garantisco prestazioni e integrita' del
sistema.


 'sti nomi che inizino per quelle due lettere...
si beh, questo è cmq un buon metodo :)


 "riservati" ...
direi che sotto apache non sia un problema.
