Sto lavorando a un progetto CakePHP 2. Inizialmente era iniziato in 2.0.x e poi migrato di recente a 2.1.0. Durante l'intero processo di sviluppo, ho ricevuto il seguente messaggio di errore.SplFileInfo :: openFile (/ app/tmp/cache/persistent/cake_core_cake_console _): impossibile aprire lo stream: autorizzazione negata in /lib/.../FileEngine.php riga 293
Si apre nella parte superiore della pagina in modo imprevedibile. Può accadere quando visualizzo solo pagine diverse o anche dopo aver aggiunto un record al database (tuttavia il record lo salva correttamente).
Warning:
SplFileInfo::openFile(/var/www/cake_prj/app/tmp/cache/persistent/cake_core_cake_console_):
failed to open stream:
Permission denied in
/var/www/cake_prj/lib/Cake/Cache/Engine/FileEngine.php on line 293
ho ricorsivamente impostare il proprietario e il gruppo della cartella tmp ad Apache, e ancora ricevuto il messaggio. Inoltre, ho impostato ricorsivamente le autorizzazioni per leggere, scrivere ed eseguire per tutti (chmod 777). Il messaggio di errore appare ancora.
Anche dopo aver cambiato sia il proprietario, il gruppo, e le autorizzazioni, il file in questione:
cake_prj/app/tmp/cache/persistent/cake_core_cake_console_
avrà il suo proprietario e il gruppo arretrato a radice, e le sue autorizzazioni impostate di nuovo a difetto.
Che cosa potrebbe causare questo problema? C'è un modo per garantire che ogni volta che viene generato questo file, esso sia sempre apache: apache con permessi di lettura/scrittura/esecuzione?
nIcO, grazie per la risposta. Io chiamo cake mentre esegui il login come root. Anche se ho impostato la mia intera cartella tmp per avere il suo proprietario e il gruppo come apache: apache', e quindi 'chmod 777' l'intera cartella in modo ricorsivo. E poi ho lanciato la torta, ma in seguito le autorizzazioni erano ancora impostate correttamente. Quindi lo script 'cake' non sembra causarlo. –
Non sono sicuro che rigeneri i file ogni volta che usi lo script 'cake'. Quindi potrebbe non ricreare sempre i file che appartengono a root anche se questo è l'utente che usi. A proposito, probabilmente non dovresti usare 'root' per chiamare' cake'. – nIcO
Non è successo di recente e di recente non ho eseguito 'cake', quindi mi chiedo se questo sia il problema. Continuerò a seguire questo e vedere se succede ancora. –