【发布时间】:2013-03-09 23:55:34
【问题描述】:
我正在尝试使用一个需要 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 授权问题(目前为止我所读到的通常怀疑),所以我的想法已经不多了。
提前致谢!
【问题讨论】:
-
是否设置了安全模式/安全模式执行目录? php.net/manual/en/ini.sect.safe-mode.php#ini.safe-mode-exec-dir
-
对我来说似乎是授权问题。你为什么不尝试在你的 php 文件的文件夹中创建一个符号链接并给它正确的授权
-
@MichaelMacDonald:我使用的是 PHP 5.4.10,所以这些不再存在。 @ITroubs:我从我的文件所在的目录创建了一个
ln -s /opt/local/bin/gs gs,但我不确定如何更改授权? -
@ITroubs 符号链接上的权限不能比目标更宽松,或者说它无关紧要。无论如何,目标决定最终可以做什么。
-
@fredrik 谢谢不知道