I can't seem to use the shell_exec() command.

Here is the program:

 

<?php

 

$data = shell_exec("free -b");

$data = str_replace('  ',' ',$data);

$data = str_replace('  ',' ',$data);

$data = str_replace('  ',' ',$data);

$data = str_replace('  ',' ',$data);

$dataArray = explode(' ',$data);

 

$total = $dataArray[16];

$used = $dataArray[17];

 

echo $used.chr(10);

echo $total.chr(10);

?>

 

 I can make this script executable via chmod 700 mem.php and run it directly
via the command line. Only then I can get it to work on my redhat 9 machine.

The problem is I call this script from another script to plot out the data
on MRTG graphs.   

 

I expect to see something like :

 

[EMAIL PROTECTED] php-4.3.2]# php /var/www/html/swap/mem.php

 

 246789242

 512689734

 

[EMAIL PROTECTED] php-4.3.2]#

 

But in fact I get the warning :

 
[EMAIL PROTECTED] php-4.3.2]# php /var/www/html/swap/mem.php
 
Warning: shell_exec(): Cannot execute using backquotes in Safe Mode in
/var/www/html/swap/swap.php on line 3
 
[EMAIL PROTECTED] php-4.3.2]# 
 
The warning would be applicable if any php.ini file on my system had Safe
Mode enabled. As the bug people said shell_exec() == ``.  But that applies
if anywhere on my box safemode was enabled. I have spent 4 solid days
looking and verifying there is no safe mode enabled on my box. It's an
internal monitoring server there is absolutely no need for safe mode. This
is what is in my PHP.ini   

 

; Safe Mode

;

safe_mode = Off

safe_mode_gid = Off

 

Can someone tell me if they can run that script on their *nix machine? I'm
running php 4.32 apache 2.0 server on a up-to-date redhat 9 server. I don't
think this script can be run from another program.  

 

 

Reply via email to