NYCPHP Meetup

NYPHP.org

[nycphp-talk] Can't do PHP 'exec' for an rsync command via web server

Hans Zaunere bulk at zaunere.com
Sun Jun 24 11:50:24 EDT 2012


> I'm developing a small utility web page to run on my own server which is
> running CentOS 6.2 and Apache. PHP 5.3.3.
>
> I tried using from PHP the exec function and also system, but after checking
> the results nothing is returned. However, when I ran a little fragment of
> this PHP code from the command line, it worked fine. But it won't execute
> and return anything when run from a web page.
>
> I have searched for an answer and have not been able to find a workable
> solution to this. I looked and Safe Mode is off for PHP, as it is shipped
> with CentOS. I've see forum postings about having Apache run as root, but
> that's not secure. I was wondering if it was possible to put some specific
> commands in sudoers like rsync for apache? That way maybe exec('sudo rsync
> ...'); would work without promoting for a password?
>
> I'd greatly appreciate a solution from someone who has already been through
> this. Thanks!


Not necessarily a straightforward resolution to this, but some things
to keep in mind:

- ensure that the CLI and Apache versions of PHP are using the same
php.ini and that they're logging to the same (or atleast some place
that you know)

- confirm that the logs don't confirm errors

- use output buffering and system() to execute a command and debug
what it returns

- permissions are probably a concern which should be reflected in the
above output

Hopefully that helps a bit :)

H



More information about the talk mailing list