I have a certain PHP script that calls exec() to execute a command to convert a PDF to JPG. This command works fine in bash.
To preempt your initial troubleshooting guesses, note the following:
- safe_mode = Off
- Permission on the directory containing the PDF and the script is set to 777, and this directory is also where the JPG is being written.
- The command I am passing to exec() explicitly points to the binary being used (e.g. /usr/local/bin/convert).
- display_errors = On
- error_reporting = E_ALL
- disable_functions = [blank]
- I am echoing exec()'s output and it returns nothing. The command being run by default returns nothing.
When I call this PHP script from the browser (visiting http://www.example.com/script.php), exec() does not execute its argument.
IMPORTANT: I know that there are no issues with my script or the way I have constructed the bash command, because from bash, I can execute the script with 'php' and it works (e.g. 'php script.php' converts the file)
I have also tried switching out exec() with system().
Last, I have had this issue once before in the past but cannot remember how I fixed it.
I know there is something I am missing, so I hope someone else has experienced this as I have and remembers how to fix it!
Thank you in advance for any assistance you can provide.
2>&1to the end of your command to redirect errors from stderr to stdout. This should make it clear what's going wrong.