PHP exec 错误,可能是 MAMP 使用 ghostscript

Posted

技术标签:

【中文标题】PHP exec 错误,可能是 MAMP 使用 ghostscript【英文标题】:PHP exec error, possibly MAMP using ghostscript 【发布时间】:2012-10-21 03:52:32 【问题描述】:

我一直在尝试在 php 中使用 ghostscript 将 pdf 文件转换为图像(png、jpg)。

我不在乎,只要它们是图像。这是我使用的代码。

exec("gs -sDEVICE=jpeg -sOutputFile=/Applications/Mamp/htdocs/cover.jpg -r144 /Applications/Mamp/htdocs/test.pdf"); 

当我在命令行中输入完全相同的内容时,显然没有 exec 和引号,它完全符合我的要求。但是,当我运行 php 文件时,什么也没有发生。我正在使用 MAMP 服务器,服务器似乎工作正常,每当我用它运行另一个文件时,我都没有问题。任何人都知道为什么它可能无法正确执行?

【问题讨论】:

您是否尝试过输入gs 可执行文件的完整位置?它可能不在 PHP 的路径中。 非常感谢,我花了好几个小时才弄清楚这个问题,我问了我所有的朋友,我明天要开会,如果我不这样做,我的老板会杀了我.这么简单的解决方法,谢谢 太好了,我会给它一个正确的答案。 【参考方案1】:

gs 可执行文件可能不在 PHP 的路径中,因此无法使用 exec() 运行它。输入命令的完整路径将允许它在 PHP 中运行。

要查找完整路径,您可以从命令行运行 which gs,因为它对您是可执行的,然后将该路径复制到 exec() 方法中。

> which gs
/path/to/gs

在 PHP 中更新 exec()

exec("/path/to/gs -sDEVICE=jpeg -sOutputFile=/Applications/Mamp/htdocs/cover.jpg -r144 /Applications/Mamp/htdocs/test.pdf"); 

【讨论】:

谢谢。这就是我要找的

以上是关于PHP exec 错误,可能是 MAMP 使用 ghostscript的主要内容,如果未能解决你的问题,请参考以下文章

使用 MAMP 和 MAC 在 php myadmin 上获取错误 500

MAC 下 mamp环境开启php错误提醒

为啥 PHP exec('convert input.pdf output.jpg') 不起作用?

mac osx 上的 exec() 命令返回 5

我正在使用 laravel 5.3 ,使用 MAMP 作为服务器,我的 php 版本是 7.4.1

MAMP 上的 PHPUnit - 引发致命错误