简体   繁体   中英

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

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

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 .

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM