Come si risolve un'installazione di Trac che inizia a generare errori relativi a PYTHON_EGG_CACHE?

StackOverflow https://stackoverflow.com/questions/215267

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?

È stato utile?

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à.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top