Bai frate, sinteti nebuni! Ca raid, ca ptop, ca file descriptori, 
ca strace si gdb si profiling... Ca sa omoriti o musca e suficient sa-i 
puscati o palma peste ochi, nu e neaparat necesar sa-i prabusiti cladirea 
in cap.

        mod_status FTW!
        Cind apache o ia razna, deschizi frumusel pagina lui mod_status 
(default e http://numele_rablei/server_status?refresh=5 - ultima cu 
refreshul e hint), te uiti sa vezi care instante de apache is pe cimpii, 
si vezi alea ce cgi-uri/php-uri sau alte trasnai ruleaza, ce 
filedescriptori are deschise, si eventual ii pusti un strace -p (daca 
folosesti prefork ceea ce e foarte probabil).

        Si mod_status ar trebui sa vina inaintea logurilor atita timp cit 
apache-ul e inca functional (e.g. nu s-a dat cu crestetul de MaxClients 
inca), pentru ca spre deosebire de loguri mod_status iti va spune ce fac 
copchii turbati ai lui apache inainte de a apuca ei sa scrie ceva in 
loguri (cel putin in access_log liniile apar dupa ce continutul e 
trimis, si daca ai vreo balarie de php setat cu max execution time 40 de 
zile e cam naspa).

        Cit despre mailuri... schimba in php.ini calea catre sendmail 
catre un wrapper catre sendmail care logheaza undeva environment-ul. Macar 
iti dai seama in ce director e scriptul hackuit. Acum vreo citiva ani am 
facut un astfel de wrapper prea simplu in perl care pe linga body-ul 
mailului face si treava cu environmentul:

#!/usr/bin/perl

use strict;

my ($line, $FILE);
my $logfilename="/tmp/phpemails.log";
my @email;

if (!open(FILE, "| /usr/sbin/sendmail -t -i")) {
         print STDERR localtime()." Error opening a pipe to sendmail: $!\n";
         exit;
}

while($line=<STDIN>) {
         print FILE $line;
         push(@email, $line);
}

close(FILE);


if (!open(FILE, ">>$logfilename")) {
        print STDERR localtime()." Error opening $logfilename: $!\n";
         exit;
}

print FILE @email;

foreach $line (keys(%ENV)) {
         print FILE "$line -- $ENV{$line}\n";
}
print FILE "\n\n";
close(FILE);


-- 
Let's cut tha crap, ok? Ce spun eu aici ma reprezinta doar pe mine, si-mi
rezerv dreptul sa ning asupra oricarei companii pe care credeti voi c-as
sprijini-o eu in vreun fel, da?
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui