Avatar billede Slettet bruger
31. oktober 2002 - 10:03 Der er 15 kommentarer og
3 løsninger

exec("uptime") virker ikke?

Jeg plejer at bruge:

$uptime = exec("uptime");

i mit PHP script for hurtigt at få informationer om, om min server er overbelastet. Det har også virket på alle mine servere indtil nu, men på min nye 2 ghz linux server (dedikeret hos rackshack.net) er $uptime pludselig tom. Hvorfor?
Avatar billede Slettet bruger
31. oktober 2002 - 10:05 #1
Kommandoen "uptime" virker i øvrigt fint fra kommandolinjen/telnet.
Avatar billede rosted Nybegynder
31. oktober 2002 - 10:18 #2
Og exec er ikke slået fra (eller ikke slået til) :)?
Avatar billede Slettet bruger
31. oktober 2002 - 10:31 #3
Hvordan tjekker man det?

system() og passthru() retunerer heller ikke noget.
Avatar billede rosted Nybegynder
31. oktober 2002 - 11:22 #4
Hos min udbyder skriver jeg

<HTML>
<HEAD>
</HEAD>
<BODY>
<P><?php echo(exec("uptime"));?>
</P>
</BODY>
</HTML>

og det returnerer

Warning: exec() has been disabled for security reasons in /home/user_1/helth/public_html/uptime.php on line 5
Avatar billede Slettet bruger
31. oktober 2002 - 11:32 #5
Aha... men jeg får ingen fejl.
Avatar billede rosted Nybegynder
31. oktober 2002 - 11:36 #6
Så er det nok ikke det der er galt :)
Avatar billede gymer Nybegynder
31. oktober 2002 - 12:56 #7
du har nok ikke slået php til at give fejlmeddelser
Avatar billede Slettet bruger
31. oktober 2002 - 13:09 #8
Jo, der kommer fejlmeddelelser ved andre fejl.
Avatar billede morten_grouleff Nybegynder
01. november 2002 - 20:54 #9
PHP kører i safemode og "uptime" ligger ikke i safe_mode_exec_dir?
Avatar billede Slettet bruger
03. november 2002 - 12:06 #10
Hvor kan man se, om der bliver brugt safemode, og hvordan slår man det fra?
Avatar billede gymer Nybegynder
03. november 2002 - 12:32 #11
i php.ini

find den med find eller locate
Avatar billede Slettet bruger
03. november 2002 - 12:54 #12
safemode var off... andre muligheder?
Avatar billede lojmann Nybegynder
05. november 2002 - 19:24 #13
Er det mon fordi at "uptime" ikke findes i Apaches (den bruger som Apache køre som) Envoriment Path? :) Prøv at skriv den direkte path til uptime ?
Avatar billede Slettet bruger
05. november 2002 - 19:31 #14
Øh... jeg forstår ikke helt hvad du mener. Hvis jeg skriver "uptime" i telnet virker det fint.
Avatar billede lojmann Nybegynder
05. november 2002 - 19:55 #15
Ja, men du logger vel ikke ind som den bruger Apache køre som?
Apache køre som en bruger, som 100% ikke burde (kan godt) være den du selv logger ind med i telnet.

I filen httpd.conf kan du se, hvilke bruger apache køre som. (user = ???)
Avatar billede Slettet bruger
05. november 2002 - 20:03 #16
User apache
Group apache

Men hvad gør det?
Avatar billede lojmann Nybegynder
05. november 2002 - 21:38 #17
Du logger ikke ind som brugeren "apache" via telnet, vel?

Den opsætning som brugeren apache har, er komplet anderledens end den du har (med dit brugernavn) og apache-brugeren har sikkert ingen envoriment path (dvs. den variabel som får systemet til at finde f.eks. uptime i /usr/bin mappen når du bare skriver uptime) derfor skal du i din exec() angive f.eks. exec("/usr/bin/uptime") HVIS filen uptime ligger der, ellers skal du selv lige finde den og skrive den rigtige PATH :)
Avatar billede gymer Nybegynder
15. januar 2003 - 10:23 #18
function uptime () {
        $fd = fopen('/proc/uptime', 'r');
        $ar_buf = split(' ', fgets($fd, 4096));
        fclose($fd);
        $sys_ticks = trim($ar_buf[0]);
        $min  = $sys_ticks / 60;
        $hours = $min / 60;
        $days  = floor($hours / 24);
        $hours = floor($hours - ($days * 24));
        $min  = floor($min - ($days * 60 * 24) - ($hours * 60));
        $second = floor($sys_ticks - ($days * 60 * 24 * 60) - ($hours * 60 * 60) - ($min * 60));
        if ($days != 0) {
            $result = "$days dage ";
        }
        if ($hours != 0) {
            $result .= "$hours timer ";
        }
        $result .= "$min minutter $second sekunder";
        return $result;
}

har hej lige bikset med det virker fint
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester