[Risolto - Spiegazione - ] cartella public: su D7.4 genera errore file_size()

28 contenuti / 0 new
Ultimo contenuto
[Risolto - Spiegazione - ] cartella public: su D7.4 genera errore file_size()

ciao a tutti,

ho installato 7.4 su localhost (LAMP) per creare un nuovo sito. Tutto bene, ho attivato il necessario (clean-url e librerie varie). Ho creato alcune pagine con qualche immagine inserita con CKeditor, menu, calendari ... tutto ok!!

Cerco di inserire delle immagini su contenuto personalizzato come campo image .... tre errori (tutti legati ai permessi pare!) li sistemo .... ed ora ho l'errore mysql integrity .... in pratica pare abbia caricato il file due volte... vado su imce (faccio un tentativo A CASO) e gli dico di rinominare i file identici se nuovamente caricati. Nulla!!

Mi ritrovo però la cartella public: sulla cartella principale del sito e con permessi da root (sono su /var/www con permessi 777) ma non ce l'ho messa io!! poi la stessa compare anche alla fine dei percorsi dichiarati su impostazioni file system, sempre creata da d7..... in pratica io carico il file una volta, ma drupal lo spedisce su due cartelle con stesso nome in posti diversi .... mysql ovviamente genera errore.
Cancellare la cartella public: "pirata" non serve viene ricreata al prossimo upload ..... sul forum inglese ad oggi nulla ... qualche idea? sbaglio qualche cosa?

Verifica cosa hai configurato in admin/config/media/file-system

Angelo Turetta

sites/default/files permessi 777 con chmod -r ..... metodo pref. pubblico.
su percorsi privati la stessa path con url assoluto ... con CKeditor le immagini le carico e si vedono. Solo il modulo image view e gallery hanno problemi.

grazie e ciao

nevengofuori

Intendeva tuosito.it/admin/config/media/file-system controlla cosa hai messo li.

oh bella .... ho messo quello che ho scritto.
ho specificato i permesi impostati su quella cartella ... sono su server ubuntu ..... e ho specificato il metodo di download che ho scelto.

Inizialmente avevo messo sites/default/files/immagini .... ma notando queste strane creazioni di cartelle pubblic ho provato eliminando la mia cartella immagini e lasciando la cartella pubblic che si creava in automatico ..... sicchè ora c'è solo sites/default/files ... azzz .... non ho provato aggiungendo pubblic e quindi componendo sites/default/files/public ... ora provo .... acceso il pc ....... localhost .... miosito/admin/conf/media/file system ->sites/default/files/public ...... bene ora su CK editor mi carica immagini con path: miosito/sites/default/files/public/sites/default/files/large_immagine.jpeg (almeno imagecache va) :::: ovviamente image broken!! ..... dentro sites/default/files si è formata la cartella sites con permessi 555 e manco a dirlo dentro c'è la cartella default s dentro sities ma tutte e due con permesi 777. Immagini nulla.

Ho capito male una seconda volta?? non esitate a correggermi.
Unica pecca ... se vogliamo dire così ... è che il sito è su una cartella e compare come localhost/miosito/........

Grazie ancora.

nevengofuori

Se i permessi sono ok e il percorso è corretto non ci sono motivi per cui non funzioni, il fatto che crei una cartella public che non hai scritto da nessuna parte mi fa pensare che hai sorvolato su qualcosa, da qualche errore quando carichi i file? Il metodo su cosa è impostato?

il metodo è public ....

l'errore è:

warning: filesize(): stat failed for public://ecoauto( che è il miofile).jpeg in file_save() (linea 573 di /var/www/miosito/includes/file.inc) dopo l'upload

NB. avevo cancellato ogni cartella public prima dell'upload!!

Salvo il contenuto e mi da lo stesso errore con in più la legenda seguente:

il file specificato public://ecoauto.jpeg non può essere copiato perchè non esiste nessun file con quel nome. verifica di avere inserito il nome corretto del file.

nevengofuori

purtroppo a questo punto non capisco ..... perchè su 6.2 nessuno si creava cartelle public: e su 7.4 si? (è perchè mai proprio public: due punti!!!)

nevengofuori

Basta semplicemente prendere l'errore e cercare (ma sono l'unico che se c'è un errore lo cerca su google e pensa che sia quello il problema?)
http://drupal.org/node/1069072
http://drupal.org/node/57697
http://drupal.org/node/451002

Quote:
ma sono l'unico che se c'è un errore lo cerca su google e pensa che sia quello il problema?

Non sei l'unico ;-)

A me un problema simile (e vedo che nei link di ealmuno è ribadito più volte) è capitato quando la directory temporanea di drupal (che per default su Ubuntu sarà /tmp) non era scrivibile da apache o non esisteva.

Angelo Turetta

@ealmuno

Sei un carissimo ragazzo, mi piace www.informaticazone.eu ... ma vedo che sei troppo impegnato per essere anche attento .....
..... Quello che mi hai postato L'HO LETTO DUE GIORNI FA!

@wolrd

Non c'è traccia di soluzione ..... valida si intende ..... ma cercando solo quello specifico errore su google si ha una panoramica troppo ristretta del problema ....

Infatti per esempio qua già si vede che il problema è ben più ampio ..... e cercando le correlazioni al problema si scopre che ce ne è molti altri legati alla creazione da parte del sistema di queste benedette cartelle Public: già a partire da drupal 7.2.

Evidentemente qualche cosa non funzia a dovere ..... a qualcuno l'errore compare ad altri no (bisognerebbe verificare quelli che dicono che è tutto a posto ..... infatti a me hanno insegnato che una spia spenta non vuole dire che non ci sia un allarme in corso, poterbbe essere la lampadina bruciata).....

Se qualcuno si vuole impegnare ..... io sono disposto a fare altrettanto.

nevengofuori

Primo link vedo che il problema è stato risolto, quindi c'è la soluzione, leggi anche il commento 7 e 8.
terzo link commento 6 dice di aver risolto, le soluzioni sono parecchio chiare e dicono che ci sono problemi con i permessi nella cartella tmp (come dice aturetta).
Forse li hai letti male, dato che al tuo stesso problema loro hanno risolto.

Quote:
Infatti per esempio qua già si vede che il problema è ben più ampi

Hai cercato drupal 7.4 image, significa che il problema potrebbe essere una persona che cerca un modulo per caricare un'immagine, oppure un consiglio su come gestire le immagini, il problema non è così ampio, se ad un errore specifico mi metto a cercare una cosa generale è ovvio che mi appaiono così tanti risultati, non hai nemmeno inserito la parola error o qualsiasi altra frase che possa far pensare ad un errore.
Infatti i primi link che vedo corrispondo a problemi nell'upgrade, più che altro errori loro, altri a drupal 4.7.4 (si parla di 5 anni fa) e neanche l'ombra del tuo errore in prima pagina, quindi non è la query giusta da usare.

@turetta grazie ..... scoperto l'origine del messaggio di errore ma non l'errore:

unforumacasodiphp qua ne parlano e credo sia anche il ns. caso ...... il messaggio quindi esce quando drupal (php) non riesce a scrivere su una cartella ..... io sono in root e ho dato i permessi solo alla cartella miosito ..... e nemmeno a tutta altrimenti drupal genera errori di sicurezza o di non scrivibilità ..... quando faccio un upload delle immagini, drupal crea public: ma siamo in root e le nuove cartelle create, ubuntu, me le rende con permessi root e quindi non scrivibili => ERRORE warning: filesize(): stat failed for public://ecoauto( che è il miofile).jpeg in file_save() (linea 573 di /var/www/miosito/includes/file.inc)

In teoria quindi se sposto il sito da ambiente root a non root l'errore dovrebbe scomparire .... Bene.

Il problema è e rimane però un altro: PERCHé DRUPAL CREA LE CARTELLE PUBLIC MENTRE SULLA 6.2x NON LO FACEVA?
Qulacuno ha idea di come risolvere, se questo corrisponde ad errore, oppure come gestire questo tipo di automatismo? Il problema poi si ripercuote sugli altri moduli legati ad image.

Infatti non ho capito la logica della creazione delle cartelle public: Drupal ne crea almeno due contemporaneamente, una in radice e una alla fine percorso dichiarato su tuosito.it/admin/config/media/file-system

[okkio ..... drupal 7.4 è veramente bello ... è un peccato non sapere come gestire queste cose]

@ealmuno ..... ho appena letto .... avevo capito male ma tu se leggi ora puoi capire meglio il mio problema:

Loro hanno risolto e io ho scritto/capito anche il perchè .... ma credo comunque che il problema "vero" rimanga:
1-sono io che non conosco le dinamiche della cartella public: e il suo significato per drupal => io cerco ma chiedo anche aiuto.
2-come ho letto in alcuni post che cercano di fissare una pacth per questo, il problema esiste ed è in corso di soluzione .... ci proviamo anche noi?
3-vedi punto 1 e quei post sono stati scritti da gente pratica di drupal come il sottoscritto.

ciao e grazie

nevengofuori

Il problema è abbastanza relativo a te ed altre persone ed è dovuto come più volte ribadito ai permessi, controlla che la cartella tmp abbia i permessi e che non si riferisca alla cartella che si trova nel file system e non nella root.

@ealmuno + @turetta

no ok ma capito .... ci sono arriato .... ma public:??? perchè esiste? perchè si crea? solo perchè miosito è in root, e precisamente in /var/www/miosito? Oppure ci sarà anche dopo? e a che serve?

nevengofuori

Forse si crea per quel problema.

@ealmuno
@turetta

.... bisogna controllare la dir tmp dove viene creato un .htacces che con 6.2x non esisteva (almeno non l'avevo visto e se c'era l'avevo rimosso) e questo crea altri problemi.

La cartella public: continua ad essere creata. Viene ricreato anche un percorso aggiuntivo dentro sites/default/files/immagini che replica il percorso stesso.

Se cancello public: e i percorsi ricreati automaticamente riesco a fare 1 upload ..... poi ho di nuovo l'errore .....cancello tutto ...riesco a fare ancora un altro upload ....poi si ricrea ancora tutto e ancora errore.

nulla non trovo dove mettere i permessi giusti .... provo a spostare il sito ... saprò dire

nevengofuori

Hai provato a creare ed usare una cartella in cartella home/tuonome/www per i tuoi siti? Se sei in locale è l'ideale, molto più semplice da gestire e di solito non da errori.

sudo gedit /etc/apache2/httpd.conf

Dove poi scrivi:

###cartella www
<VirtualHost *:80>
DocumentRoot /home/tuonome/www
ServerName localhost
</VirtualHost>
<Directory /home/tuonome/www>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>

@krima

non ottimo .... ho fatto una pausa percìò non ti ho risposto prima ..... in effetti era il tentativo ultimo ..... la situazione è questa:

crea meno problemi ma: la cartella public: continua a crearsi e all'interno di essa vengono salvate immagini con permessi di non scrittura.

Si genera quindi stavolta non ho più un errore dovuto a mancanza di permessi su cartelle da PHP (ovviamente ... sono su scrivania) ma un errore di mancanza di integrtà dati su mysql .... infatti la stessa immagine la carico due volte con lo stesso nome sia su cartella public: che in sites/default/files/immagini ... il che ovviamente non va bene (cioè non lo faccio io lo fa drupal).

..........................................:-0

nevengofuori

ho cancellato la cartella public .... tutto ok ora..... devo avere degli errori ancora nel db però ..... poichè solo con due immagini su 12 mi si ripresenta l'errore di duplicazione item mysql ...appena verificato metterò risolto.

nevengofuori

giorgiofoga wrote:
ma public:??? perchè esiste? perchè si crea? solo perchè miosito è in root, e precisamente in /var/www/miosito? Oppure ci sarà anche dopo? e a che serve?

public: e private: sono due astrazioni introdotte con drupal7 (è stata inserita una API per la gestione di stream) e NON DEVONO COMPARIRE NEL FILESYSTEM.

Il fatto che quella cartella venga creata è IN SE STESSO sintomo di un problema. Se posso azzardare un'ipotesi, secondo me hai un modulo che intercetta le operazioni sui file e non supporta la nuova API.

Io ripartirei con un sito di test vuoto, abiliterei i moduli uno ad uno fino a capire quello che ti incasina tutto.

Angelo Turetta

@turetta

Credo tu abbia centrato il problema ..... in effetti alla fine mi ritrovo sempre e comunque una cartella public: che non dovrebbe esistere e che ho scoperto essere utilizzata da mysql (sbirciando dentro phpadmin) quindi quello che mi dici è senz'altro vero.... in più .... il problema viene da file_field immagino poichè l'immagine l'ho caricata con un campo appositamente creato su un tipo di contenuto (mi pare sia file_field che si occupa di questo) e se nell'amministrazione del campo, alla voce file path (nella didascalia ti dicono che è opzionale, che bisogna mettere solo il nome e che sarà il nome della cartella di salvataggio delle immagini del contenuto creato) se non metto nulla si crea la cartella public: con annessi problemi, se metto un nome=>niente cartella public: ma problemi shiftati di 1 livello, cioè: non è più public: che prende i permessi root e che incasina, ma sono le immagini stesse dentro quella cartella indicata nelle impostazioni campo che si prendono i permessi root e che incasinano!!!

posso anche provare a ripartire (che sbobba) .....

quindi quelle persone che su drupa.org hanno segnalato il bug .... almeno loro ... non sono proprio niubbi!!

se qualcuno ne sa' ..... ben venga!!

nevengofuori

Alla fine non è servito ricominciare da capo:

1-passato il sito in locale da /var/www/miosito a /home/user/cartella/miosito gestione più facile....
2-cercato tutte le cartelle public: (erano in radice e in miosito) e cancellate
3-impostato i percorsi file system come sites/default/files/cartella1
4-impostato percorso del campo personalizzato con immagini (stuttura-> tipo di contenuto-> contenuto personalizzato-> campo personalizzato -> gestione campi-> modifica -> path settings) come cartella2 (che và dentro sites/default/files/cartella1)
5-come punto "4" impostato visualizzazione thumbnail (non sono sicuro che l'impostazione personalizzata non creasse problemi ... provare)
6-impostato percorso IMCE come cartella 3.

Tutto ok ... non si creano più cartelle public: ..... (se nel file system avessi impostato private immagino avrei avuto problrmi con una cartelle di nome private: )

Un saluto e ringraziamento a :

ealmuno
ATuretta
Krima

nevengofuori

Una aggiunta:

inspiegabilmente anche dopo queste impostazioni a volte e apparentemente in modo casuale la cartella public: faceva una ricomparsa.... ho curiosato per bene .... e ho finito per disintallare il modulo IMCE_mkdir.

E' lui alla fine il responsabile di tutto non file_field o altro .....
Sui vari forum si leggeva di problemi di file_field simili ai miei e probabilmente erano problemi comuni a quelli di questo modulo IMCE_mkdir.

come correttamente ha sottolineato ATURETTA un modulo non pienamente compatibile con le nuaove API.

per evitare file_field l'ho installato nella versione dev. come altri moduli per le immagini:

-CKEditor
-file_field
-.... non ricordo forse shadowbox

Effettivamente risolve. CKEditor per esempio nella versione consigliata genera subito un errore che la dev non dà.

Attenzione quindi alle versioni e perdiamo più tempo a consultare la documentazione sui moduli e loro elenco errori prima di installarli......

insomma niente fretta .... altrimenti si perde tempo dopo!!

nevengofuori

Mi togli una curiosità: D7 ha già i filefield e imagefield, a cosa serve installare il modulo aggiuntivo? Ora che vedo, filefield è disponibile SOLO per 6.x

Inoltre: hai provato il modulo Media invece di IMCE?

Angelo Turetta

@ATuretta

ho aggiornato file_field (regredito forse meglio) poichè era consigliato in altro sito ... ma andando avanti nella realizzazione sono sempre più convinto che alla fine il problema fosse solo CKEditor non nella versione dev. e IMCE_mkdir che ha qualche cosa che non và.
Ovviamente installare in home/..... rende tutto più "rilassante" e meno sud...ato.

no non ho provato media ... ma IMCE e IMCE_mkdir non sono la stessa cosa. IMCE pare finzionare bene .... non intenzione di pubblicare video o altro, solo immagini ..... andrò a controllare la documentazione di media .... così mi istruisco un po'.

Ciao e grazie ancora.

nevengofuori

Lascia stare ckeditor e usa wysiwyg.

Ripeto, http://drupal.org/project/filefield non ha release per D7, perché è stato integrato nel core.

Angelo Turetta