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?
Slettet bruger
31. oktober 2002 - 10:05
#1
Kommandoen "uptime" virker i øvrigt fint fra kommandolinjen/telnet.
31. oktober 2002 - 10:18
#2
Og exec er ikke slået fra (eller ikke slået til) :)?
Slettet bruger
31. oktober 2002 - 10:31
#3
Hvordan tjekker man det?
system() og passthru() retunerer heller ikke noget.
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
Slettet bruger
31. oktober 2002 - 11:32
#5
Aha... men jeg får ingen fejl.
31. oktober 2002 - 11:36
#6
Så er det nok ikke det der er galt :)
31. oktober 2002 - 12:56
#7
du har nok ikke slået php til at give fejlmeddelser
Slettet bruger
31. oktober 2002 - 13:09
#8
Jo, der kommer fejlmeddelelser ved andre fejl.
01. november 2002 - 20:54
#9
PHP kører i safemode og "uptime" ligger ikke i safe_mode_exec_dir?
Slettet bruger
03. november 2002 - 12:06
#10
Hvor kan man se, om der bliver brugt safemode, og hvordan slår man det fra?
03. november 2002 - 12:32
#11
i php.ini
find den med find eller locate
Slettet bruger
03. november 2002 - 12:54
#12
safemode var off... andre muligheder?
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 ?
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.
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 = ???)
Slettet bruger
05. november 2002 - 20:03
#16
User apache
Group apache
Men hvad gør det?
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 :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling