3

I have the following script to take an uploaded PDF in PHP and call ImageMagik/Ghostscript to convert to images of specified size.

$tmp = exec("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"", $results); 

However, this doesnt seem to work. No errors in the log file and no errors on screen. If I do the following,

$tmp = exec("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"", $results); 
echo ("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"");

And I paste the output into a command prompt it works fine (It takes around 6-10 seconds - My max_execution_time is at 600.

Any suggestions on why this might not be working?

This is Windows, IIS 7 and PHP5.

Edit: I'm having the same issue in both CentOS and Windows. Both have ImageMagik and Ghostscript installed.

Edit Edit the below still fails.

$handle = popen("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"","r");
        echo "'$handle'; " . gettype($handle) . "\n";
        $read = fread($handle, 2096);
        echo $read;
        pclose($handle);
hakre
  • 193,403
  • 52
  • 435
  • 836
LiamB
  • 18,243
  • 19
  • 75
  • 116

3 Answers3

10

Try adding 2>&1 to the end of your command. I found it here.

exec('some_command 2>&1', $output);
print_r($output);  // to see the respond to your command
Community
  • 1
  • 1
user
  • 101
  • 1
  • 3
3

in php.ini maybe this function exec declare under

disable_functions

or if you run in

safe mode

This function is disabled when PHP is running in safe mode.

Haim Evgi
  • 123,187
  • 45
  • 217
  • 223
1

Could it be an issue with your PATH variable ?

You might want to try and run

<?php
echo exec('cmd.exe /c echo %path%');
?>

both in the command line and from IIS and compare their outputs.

Arc
  • 11,143
  • 4
  • 52
  • 75
  • Might help if you try using absolute paths in this case (especially if even "cmd.exe" does not execute). – Arc Sep 09 '10 at 12:05