Sono giorni che litigo con TopHost per quanto riguarda i diritti di accesso sui file. Per motivi di sicurezza, e tanto di cappello ai signori, i server tophost funzionano in suexec e quindi, a detta dei tecnici, basta attenersi a quanto indicato nelle F.A.Q. quando si installa il sito, per avere un Joomla! funzionate.
Peccato però che Joomla! non la pensi così!
Peccato però che Joomla! non la pensi così!
Cito testualmente un passaggio della pagina FAQ:
"Come mai se dite che è così semplice e tutto dovrebbe andare senza toccare nulla il mio script non funziona?
Il problema è che alcuni script sono programmati in modo 'ottuso' e non vediamo il motivo di abbassare le nostre difese per errori dovuti ad altri. Che significa questo? Purtroppo esistono alcuni script che non verificano se possono scrivere in un determinato file o meno, bensì controllano solo il CHMOD attuale di un determinato file e a priori se non trovano il valore desiderato "pensano" che tale file non sia scrivibile, quando invece a tutti effetti lo è. Quando viene effettuato un settaggio a 777 entra in funzione un controllo di sicurezza che blocca file e cartelle con questo settaggio. A questo punto bisogna cliccare su "Ripristino spazio web" dal pannello di controllo."
Allora, sappiate che se eseguite un "Ripristino spazio web" dovrete poi correre nella gestione dei file a ripristinare i permessi a 755 perchè Joomla! non funzionerà più.
Io ho dato un'occhiata ad uno dei file che al momento mi sta facendo tribolare, LightThum.
LightThum, per chi non lo conoscesse, è un mambot che genera automaticamente delle miniature delle immagini inserite nei content e, al click sulla miniatura, o thumb, attiva uno script java che con una simpatica animazione mostra l'immagine vera e propria.
Logicamente nel codice di LightThumb non c'è nessun controllo dei CHMOD come dicono nelle FAQ, anzi! Lo script scrive tranquillamente il file senza dare nessun errore. Nel momento in cui Joomla! deve mostrare l'anteprima, questa non viene visualizzata perché il file, avendo permessi 640, ovvero Lettura/Scrittura per il proprietario e Lettura per il gruppo, senza nessun tipo di accesso per gli altri utenti, NON PUO' essere letto, ma non dallo script, proprio dal webserver tophost, come dimostrato dal fatto che se cerco di aprire l'immagine direttamente dando il path nel browser, o mi esce l'errore tophost che mi dice che non ho i permessi per accedere al file, o vengo ridirezionato in una pagina di benvenuto tophost.
Come risolvere il problema?
O si esegue il chmod 755 del file generato automaticamente, ma la cosa è pesante, o si fa quello che secondo tophost genera il problema, si esegue il CHMOD da script PHP!!
Ho installato la versione 2.1 in polacco di LightThumb, ho trovato solo quella come versione aggiornata e francamente le opzioni di default vanno più che bene, quindi non c'è nessun problema con la lingua.
Intorno alla riga 94 del file lighThumb.php, che si trova in /mambots/content, LightThum controlla se l'anteprima esiste, qualora non trova il file crea l'anteprima richiamando la funzione Img2Thumb che restituisce l'imagine in una variabile $thumb che, successivamente, viene scritta su disco con il metodo getFileOut().
Inserendo un comando CHMOD otteniamo i permessi per la lettura del Thumb semplicemente inserendo il comando come descritto:
$thumb = new Img2Thumb($mosConfig_absolute_path .'/images/stories/'. $temp[0],$newxsize,$newysize,$mosConfig_absolute_path .'/mambots/content/lightThumb/thumbs/'. $thumb_file); $thumb_file = $thumb->getFileOut(); chmod($mosConfig_absolute_path .'/mambots/content/lightThumb/thumbs/'. $thumb_file, 0755); |
Fatto questo, come per magia, i file di anteprima potranno esser visualizzati.