Come si risolve un'installazione di Trac che inizia a generare errori relativi a PYTHON_EGG_CACHE?
-
03-07-2019 - |
Domanda
Abbiamo usato Trac per il monitoraggio di attività / difetti e le cose stavano andando abbastanza bene, ma questa mattina ha iniziato a servire un errore di 500. Guardando Apache error_log, ottengo una traccia dello stack che culmina in:
PythonHandler trac.web.modpython_frontend: ExtractionError: Can't extract file(s) to egg cache The following error occurred while trying to extract file(s) to the Python egg cache: [Errno 13] Permission denied: '/.python-eggs' The Python egg cache directory is currently set to: /.python-eggs Perhaps your account does not have write access to this directory? You can change the cache directory by setting the PYTHON_EGG_CACHE environment variable to point to an accessible directory
Quindi ho impostato esplicitamente PYTHON_EGG_CACHE su / srv / trac / plugin-cache. Ho riavviato Apache. Eppure ricevo lo stesso errore (dice ancora " directory cache uovo attualmente impostata su: \ n \ n /.python_eggs.")
Come devo procedere? La cosa più semplice da fare per reinstallare Trac? Se seguo questa strada, quali passi devo prendere per assicurarmi di non perdere i dati esistenti?
Soluzione
Questo dovrebbe essere corretto in 0.11 secondo il loro sistema di tracciamento dei bug .
In caso contrario, dovresti provare a passare l'ambiente var ad apache, dal momento che fare un SetEnv nel file di configurazione non funziona. Aggiunta di qualcosa come
export PYTHON_EGG_CACHE=/tmp/python_eggs
allo script che usi per avviare apache dovrebbe funzionare.
Altri suggerimenti
Ho riscontrato lo stesso problema durante l'aggiornamento da Trac 10.4 a 0.11 all'inizio di quest'anno. Qualcosa deve essere cambiato affinché questo problema appaia all'improvviso: un'installazione aggiornata di Python o Apache?
Non ricordo tutte le permutazioni che ho provato a risolvere, ma ho finito per usare SetEnv PYTHON_EGG_CACHE /.python-eggs
e creare /.python-eggs con 777 permessi. Questa potrebbe non essere la soluzione migliore, ma ha risolto il problema.
Non ho mai studiato quale fosse la causa principale. Come agnul dice che potrebbe essere stato corretto in una successiva versione di Trac.
Ho combattuto molte battaglie con PYTHON_EGG_CACHE
e non ho mai capito il modo corretto di impostarlo - gli avvocati di apache, httpd.conf (SetEnv e PythonOption), niente ha funzionato. Alla fine ho appena decompresso tutte le uova di pitone manualmente, ce n'erano solo due o tre - il problema era scomparso. Non ho mai capito perché al mondo le persone comprimano i file con un peso di non più di pochi kilobyte in primo luogo ...
Ho avuto lo stesso problema. Nel mio caso la directory non era lì, quindi l'ho creata e creata per l'utente apache (apache sul mio centos 4.3 box). Quindi si è assicurato che avesse le autorizzazioni di lettura / scrittura sulla directory. Puoi cavartela dando i diritti rw alla directory se il gruppo che possiede la directory contiene l'utente apache. Un semplice http aux ps ps | grep dovrebbe mostrarti con quale account è in esecuzione il tuo server se non lo conosci. Se hai problemi a trovare la directory, ricorda il comando -a sul comando ls poiché è un " nascosto " directory.
Ho scoperto che l'uso della direttiva PythonOption nella configurazione del sito non funzionava , ma SetEnv ha funzionato. Anche la route della variabile di ambiente funzionerà.