Domanda

Sto usando il quadro Kohana 3, e sto usando il driver nativo di sessione.

Per qualche ragione, di tanto in tanto le sessioni non riescono a scrivere ai loro file.

Warning: session_start() [function.session-start]: open(/tmp/sess_*****, O_RDWR) failed: Permission denied (13) in /home/site/public_html/system/classes/kohana/session/native.php  on line 27

Sono abbastanza sicuro Kohana ha un proprio nel gestore degli errori incorporato, ma non viene attivato con questo errore (vale a dire si presenta come un normale errore di PHP, non l'errore Kohana).

errore di PHP
(fonte: alexanderdickson.com )

Chiunque abbia mai usato Kohana noterà questo sembra aver bypassato la gestione degli errori di Kohana (forse impostato con set_error_handler() ).

Esiste un modo per fermare questo errore venga visualizzato senza il passaggio dalla sessione nativa (cioè basato su file) del driver?

Devo solo dare le buone pratiche di avvio e antepongono un soppressore errore @ al session_start() nel codice di base di Kohana? Dovrei rilassare il error_reporting()?

Grazie

È stato utile?

Soluzione

Si chiama ini_set('session.save_path', APPPATH.'sessions') (sostituire APPPATH.'sessions' con la directory che si desidera) in bootstrap.php alle sessioni di forza da scrivere application/sessions. Ciò consentirà di aumentare la sicurezza di utilizzare le sessioni native e dovrebbe risolvere il problema.

Altri suggerimenti

E 'a direttiva session.save_path di PHP, è possibile ignorare per qualche cartella scrivibile in php.ini, oppure si può provare questo nel vostro .htaccess;

 php_value session.save_path '/path/to/folder/you/can/write'

Modifica: solo così non dimentico, mettere il vostro livello di cartella di sessione personalizzato sotto la htdocs / public_html / qualunque cosa

.

Anche se, tutto questo è un po 'eccessivo perché si può chiedere al proprio amministratore di server gentilmente di verificare qual è il problema con le autorizzazioni.

Questo significa che il vostro interprete PHP non ha permessi di scrittura in / tmp. Chiedi all'amministratore del server di correzione che -. È estraneo per la vostra applicazione

Nel caso in cui non ci sono collisioni con i file di sessione di diversi processi php (che funziona sotto diversi utenti): Dando loro diversi dirs sessione temporanei avrebbero aiutato. Ad esempio, è possibile spostarli da / tmp a / path / to / homedir / phptmp e utilizzare una struttura come quella:

/path/to/homedir/
/path/to/homedir/htdocs
/path/to/homedir/phptmp
/path/to/homedir/logs
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top