PHP shell_exec $ PATH变量不匹配终端$ PATH变量

时间:2016-01-14 14:36:40

标签: php variables path env

当我尝试通过shell_exec在我的应用程序中使用某些系统软件包(如ImageMagick)时,我遇到了问题。

如果我定义路径,我自己的包工作正常。 ImageMagick工作,但因为它使用Ghostscript包它在这一刻出错了,因为我的php路径变量错过了一个路径。我能够获得ImageMagick等版本。

我的PHP路径变量包含(通过shell_exec输出):

/usr/bin:/bin:/usr/sbin:/sbin

我的套餐使用' / usr / local / bin'所以我想将这个路径添加到shell_exec使用的php变量中。

当我通过终端直接回显$ PATH时的输出是:

/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

然后,当我通过终端运行我的PHP脚本' $ php script.php'工作做得很好。当我通过浏览器通过shell_exec运行脚本时,它失败了。我认为这与在GhostScript需要执行任务时不匹配的env PATH有关。

我正在搜索包含' / usr / local / bin'或同步整个路径。希望能得到一些如何做到这一点的建议。谢谢

更新

php脚本:

var_dump(shell_exec('/usr/local/bin/gs -dNOPAUSE -sDEVICE=jpeg -r144 -sOutputFile=/www/sites/domain/public_html/test.jpg /www/sites/domain/public_html/test.pdf'));

error_log中

GPL Ghostscript 9.18: **** Could not open the file '/www/sites/domain/public_html/test.jpg'.
GPL Ghostscript 9.18: Unrecoverable error, exit code 1

浏览器输出

GPL Ghostscript 9.18 (2015-10-05)
Copyright (C) 2015 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 18.
Page 1
Error: /invalidfileaccess in --showpage--
Operand stack:
   1   true
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1967   1   3   %oparray_pop   196'... (length=1044)

0 个答案:

没有答案