LiamB
LiamB

Reputation: 18606

PHP Exec Not running, but command works ok!

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);

Upvotes: 3

Views: 19363

Answers (3)

user
user

Reputation: 101

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

Upvotes: 10

Arc
Arc

Reputation: 11306

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.

Upvotes: 1

Haim Evgi
Haim Evgi

Reputation: 125644

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.

Upvotes: 3

Related Questions