PHP exec()无法运行GhostScript

时间:2013-03-20 17:54:07

标签: php exec mamp

我正在尝试使用需要exec()GhostScript的库,但它在我的MAMP服务器上无法执行此操作。我写了这小段代码来运行测试:

<?php 
$cmd = "...";
$output = array();
exec($cmd, $output)
echo $output[0];
?>

首先,我将$cmd设置为'whoami',它可以在PHP和终端(我的用户名)中提供相同的结果。

然后我尝试使用'/usr/texbin/latex --version',它也能正常工作。

但是当我尝试使用'/opt/local/bin/gs --version'时,它会失败,而它会在终端中运行。

在我看来,它既不是PATH问题也不是apache授权问题(我目前所阅读的常见嫌疑人),所以我的想法已经不多了。

提前致谢!

4 个答案:

答案 0 :(得分:0)

虽然已经几岁了,但无论如何。我今天遇到了同样的问题(试图在Ubuntu 14.4上使用php exec()运行ghostscript,意思不是mamp,而是单独安装apache,php,tesseract,ghostscript等),并设法通过创建一个bash来解决它shell脚本,我在其中运行带参数的gs,然后使用php exec()运行sh脚本。

我的bash shell脚本中的行:

gs -dBATCH -dNOPAUSE -r300 -sDEVICE=jpeg -sOutputFile=/var/www/html/ykinv/jpg/${theFile}

我的php脚本中的php exec行:

exec("sh pdf2jpgConversion.sh");

脚本都位于同一个文件夹中。

答案 1 :(得分:0)

SELECT * FROM your_table WHERE DateTime BETWEEN TRUNC( DateTime ) + INTERVAL '2' HOUR AND TRUNC( DateTime ) + INTERVAL '6' HOUR AND DateTime >= TRUNC( SYSDATE ) - INTERVAL '7' DAY AND DateTime < TRUNC( SYSDATE ) + INTERVAL '1' DAY 而不是shell_exec为我工作

答案 2 :(得分:0)

使用exec()或shell_exec()运行Ghostscript命令时,我遇到了类似的问题。我收到以下错误:

gs: /opt/lampp/lib/libtiff.so.5: no version information available (required by /usr/lib/x86_64-linux-gnu/libgs.so.9) gs: /opt/lampp/lib/libz.so.1: version `ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16) 

设置LD_LIBRARY_PATH变量可以为我解决该问题。

<?php

$command = 'export LD_LIBRARY_PATH="' . $path_to_library_dir .'"; ' . $path_to_binary;
shell_exec($command);

?>

在我的Ubuntu 18.04中,$ path_to_library_dir是“ /usr/share/ghostscript/9.26/lib” 并且$ path_to_binary是“ /usr/bin/gs

您可以通过在终端中执行gs --help命令来验证库文件的路径。 要验证path_to_binary,请使用which gs

答案 3 :(得分:-3)

Try this.

ini_set('display_errors', 1);
$pdf='test.pdf';
$quality=90;
$res='300x300';
$exportName="pdf_export_" . time();
$exportPath=realpath(dirname(__FILE__))."/$exportName/fullres/%03d.jpg";

mkdir(realpath(dirname(__FILE__))."/$exportName");
mkdir(realpath(dirname(__FILE__))."/$exportName/fullres");

set_time_limit(900);
exec("'gs' '-dNOPAUSE' '-sDEVICE=jpeg' '-dUseCIEColor' '-dTextAlphaBits=4' '-dGraphicsAlphaBits=4' '-o$exportPath' '-r$res' '-dJPEGQ=$quality' '$pdf'",$output);