Jump to content

exec() / system() problem


Recommended Posts

Hi, I have a exec/system problem.
I want to execute a php script in background.
I tested with exec("php script.php > /dev/null 2>&1 &")
On my server works fine (i use cPanel) but on other
server that have directadmin this not works.
When i try echo exec("php -v") i get only a 127 return
and no php version text.

I compared the results from phpinfo() and I did not find
something to change to make it works.

When i try: system("whereis php",$out);echo $out;
on the good server i get:
php: /usr/bin/php /etc/php.d /etc/php.ini /usr/lib/php /usr/lib/php.ini /usr/local/bin/php /usr/local/lib/php /usr/local/lib/php.ini /usr/include/php /usr/man/man1/php.1 0

and the server where is not working:
php: /usr/local/man/man1/php.1 0

In my phpinfo() on the server that works I don't see CLI extension
enabled. (if this is the problem)

Which settings do I have to change to make this works ?

Thanks

Radu
PS: safe_mode is off on both servers
Link to comment
https://forums.phpfreaks.com/topic/15798-exec-system-problem/
Share on other sites

The first server which works is
Linux 2.6.9-022stab078.9-enterprise #1 SMP Thu Jun 8 12:38:51 MSD 2006 i686

and the second one which i have issues is
FreeBSD 4.10-RELEASE-p3 FreeBSD 4.10-RELEASE-p3 #0: Wed i386

I executed exec('php -v; echo $?'); and i get 127 0 as response;
exec('ls'); works fine, it returns the files there.

Radu
Link to comment
https://forums.phpfreaks.com/topic/15798-exec-system-problem/#findComment-64647
Share on other sites

This could be a permission issue. See what this gives you:

[code]
<?php
$path = '/full/path/to/php/executable';
echo '<pre>';
echo 'Group: ', print_r(posix_getgrgid(filegroup($path)), true);
echo '<br />';
echo 'Owner: ', print_r(posix_getpwuid(fileowner($path)), true);
echo '<br />';
echo 'Permissions: ', substr(sprintf('%o', fileperms($path)), -4);
echo '</pre>';
?>
[/code]
Link to comment
https://forums.phpfreaks.com/topic/15798-exec-system-problem/#findComment-64678
Share on other sites

i found it :) ... in the second server the php path is /usr/local/bin/php and in the first is /usr/bin/php (I checked only with that path).
in the second server (bsd one) i can't run it with simply php (without path) like in the other server.

Is there a way (shell command or php settings from php.ini) to run php without path?
(like exec('php script.php');)

Radu
PS: thanks effigy for your help
Link to comment
https://forums.phpfreaks.com/topic/15798-exec-system-problem/#findComment-64695
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.