【问题标题】:Ghost Script not working in on windows 2003 using php script使用 php 脚本的 Ghost 脚本无法在 Windows 2003 上运行
【发布时间】:2012-02-10 03:19:16
【问题描述】:

我在 windows server 2003(32 位)中遇到 ghost 问题。

在 phpinfo 页面,它显示已安装。 另外,我可以使用命令行界面生成 .png 文件,但是当我尝试使用 PHP 脚本生成 .png 文件时,它不起作用。

 $SavedPath = "C:\\Inetpub\\vhosts\\mysite\\httpdocs\\testlib\\images\\";

  $pdf_file = "C:\\Inetpub\\vhosts\\mysite\\httpdocs\\testlib\\test.pdf";

  $cmd =  "gs -sDEVICE=jpeg -dJPEGQ=100 -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -dDOINTERPOLATE -sOutputFile=".$SavedPath."_%d.jpg -dSAFER -dBATCH -dNOPAUSE -r72x72 ".$pdf_file;

  Ghostscript is installed on C:\gs\bin\gsdll32.dll.
  And exe file is located on C:\gs\bin\gswin32c.exe.

请告诉我,我应该在 Windows 中更改环境变量吗? 我也试过用 conver 命令代替 gs,但没有运气。

【问题讨论】:

    标签: ghostscript


    【解决方案1】:

    尝试使用$output = shell_exec($cmd); echo "<pre>$output</pre>"; - 看看是否打印出错误。

    正如@Dan 提到的,你也可以使用exec($cmd, $output); 然后print_r($output);

    Dan 的方法可能会产生更多信息,因为如果发生错误,shell_exec 会返回 null。

    更新

    问题可能是@Dan 提到的权限。

    关于权限:

    SO about this 上找到另一个帖子:此帖子实际上引用了另一个站点:http://www.myfaqbase.com/q0000843.html

    【讨论】:

    • @knichil,我试过 shell_exec($cmd) 和 exec($cmd, $output)。但仍然没有运气。我检查了权限,但权限也没有问题。 print_r($output) 也没有给出错误。
    • 我很抱歉@Milap,但我的想法很新鲜。没有错误,没有权限问题,这是一个最有趣的问题。
    • @knichol,感谢您的回复,但我已向我的托管服务提供商询问,为什么 PHP 用户无权在服务器上执行任何命令?他们告诉我 PHP 用户拥有所有访问权限,有趣的是,我可以使用其他命令,如 exec("whoami") 并且它工作正常,但只有 Ghost 脚本有问题..
    • 你好@knichol。我的问题解决了。问题在于 PHP 用户在 Windows 服务器上的用户权限,我使用超级管理员授予 PHP 用户的所有访问权限,它对我有用.. 感谢您的时间..
    • 嗨@Milap。有趣的是,权限问题似乎总是会导致意想不到的问题。很高兴听到您解决了问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多