PHP的exec()不能运行GhostScript
我想使用一个需要exec()GhostScript的库,但它无法在我的MAMP服务器上这样做。我写这一小段代码,运行测试:PHP的exec()不能运行GhostScript
<?php
$cmd = "...";
$output = array();
exec($cmd, $output)
echo $output[0];
?>
首先,我设置$cmd
到'whoami'
和它的工作原理,并给出了相同的结果在PHP和终端(我的用户名)。
然后我试着用'/usr/texbin/latex --version'
,它也能正常工作。
但是,当我尝试'/opt/local/bin/gs --version'
,它失败,而它在终端工作。
在我看来,它既不是一个PATH问题,也不是一个Apache授权问题(我迄今为止读到的通常的嫌疑人),所以我没有想法。
在此先感谢!
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);
-1,您应该将您的工作归功于原作者:http://www.veryinteractivepeople.com/?p=521 – Dan 2014-06-06 21:09:01
虽然几岁,但无论如何。我今天遇到了同样的问题(尝试在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");
的脚本都位于同一个文件夹。
shell_exec
而不是exec
工作对我来说
请考虑以下几点:[我如何写一篇好文章回答?(http://*.com/help/how-to-answer) – hassan 2017-04-27 13:35:08
是的safe_mode/safe_mode_exec_dir之设定? http://www.php.net/manual/en/ini.sect.safe-mode.php#ini.safe-mode-exec-dir – 2013-03-20 17:58:05
看起来像授权问题给我。你为什么不尝试在你的PHP文件的文件夹中做一个符号链接,并给它正确的授权 – ITroubs 2013-03-20 17:58:18
@MichaelMacDonald:我在PHP 5.4.10,所以这些不再存在。 @ITroubs:我从我的文件所在的目录中创建了一个'ln -s/opt/local/bin/gs gs',但我不确定如何更改授权? – arnaudrg 2013-03-20 18:12:48