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
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
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
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
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.