2015-02-11 12 views
5

Ho aggiornato ad Apache 2.2.22 su una VM Debian 7. Ho appena installato utilizzando apt-get e non apportate modifiche di configurazione ad eccezione di aggiungere il mio VirtualHostGli errori per l'host virtuale non vengono scritti su ErrorLog specificato, ma su default error_log

<VirtualHost *:8001 *:80> 
    ServerName devintegration.ie 
    ServerAlias devintegration.ie 
    DocumentRoot /sites/integration/development/docs 
    ScriptAlias /console/ /sites/integration/development/console/ 
    ErrorLog /sites/logs/devintegration.ie-error_log 
    CustomLog /sites/logs/devintegration.ie-access_log common 
</VirtualHost> 

Il comportamento a cui ero abituato era che eventuali errori Perl o avverte apparso nel log di errore specificato nella host virtuale . Il comportamento che sto ottenendo è che gli errori Perl vanno al comune log di Apache nella directory/var/log/apache2 e il log dell'host virtuale contiene solo "Fine prematura delle intestazioni degli script".

Ho fatto qualche ricerca su google, ma la maggior parte dei risultati riguarda mod_perl. Ho trovato questa pagina e l'ultimo commento suggerisce che c'è stato un cambiamento nel modo in cui funziona, ma non è stata fornita alcuna informazione sul fatto che potesse essere modificata. Apache Log Forum "Qualsiasi informazione scritta su stderr da uno script CGI verrà copiata direttamente nel log degli errori."

C'è un modo per configurare apache per indirizzare gli errori Perl e avvisa sul log degli errori specificato nell'host virtuale?

La precedente versione di Apache che stavo usando era 2.2.15.

risposta

1

Questo è (era?) a longstanding bug in mod_cgid. Il suo stato è ancora "RESOLVED LATER" che (apparentemente) significa: "basta lamentarsi - lo faremo in una versione successiva, non ora". Forse è già stato risolto (la tua versione 2.2.22 ha 3 anni), ma non ho trovato alcuna menzione.

mod_cgid è il gestore predefinito .cgi nella versione con attacchi di Apache. Se passi a mod_cgi, ad es. usando un apache senza thread (come faccio io) che dovrebbe risolvere il tuo problema.

+0

Passare a apache senza thread ha funzionato. Sono riuscito a farlo usando apt-get: 'apt-get install apache2-mpm-prefork'. Per verificare quale MPM è attualmente in uso il tuo server Apache, usa questo comando 'aptitude search apache2-mpm-' e quello che ha una 'i' accanto è quello in uso. Ho trovato questo qui [MPM Config] (http://articles.slicehost.com/2010/5/20/configuring-the-apache-mpm-on-debian) – Yokall