首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >shell whoami不等于php shell_exec whoami?

shell whoami不等于php shell_exec whoami?
EN

Stack Overflow用户
提问于 2012-01-21 04:58:48
回答 4查看 4.3K关注 0票数 1

在一个shell中,我做了简单的whoami,我得到了geoff,这很好,因为我就是这样的人

在一个php文件中,我有shell_exec(‘shell_exec’);但我没有得到任何人。

对我来说,这似乎是一个差异,可以解释我最初的问题: imagemagick可以在shell中工作,但不能在php脚本中工作。

现在,通过这个站点,我认为这意味着我的apache xampp分配了一个不同的用户名,而不是使用我常用的用户名。

我已经尝试通过sudo的方式在php中更改我的登录,但到目前为止这对我还不起作用。

有人能帮上忙吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-21 05:16:50

@anubhava是正确的,为什么当你运行whoami时会得到两个不同的答案。但是,如果您尝试使用ImageMagick将PDF转换为PNG (如您在该问题上的评论),如果脚本的路径不包含Ghostscript的路径位置,则即使使用ImageMagick的convert的完整路径也不会起作用。在不影响任何用户路径的情况下,您可以添加:

代码语言:javascript
复制
putenv("PATH=/usr/local/bin:/usr/bin:/bin");

或者类似的东西,这取决于您的设置。gs可执行文件必须位于脚本用户路径中的某个位置,否则ImageMagick将无法转换PDF或EPS文件。

票数 1
EN

Stack Overflow用户

发布于 2012-01-21 05:05:22

它应该简单易懂。

  • 在shell中,您以Unix用户geoff的身份登录,这就是您所得到的。
  • PHP在Unix中以nobody作为所有者的httpd进程中运行,因此这就是您从PHP执行shell_exec('whoami');时所得到的。
票数 2
EN

Stack Overflow用户

发布于 2012-01-21 05:07:49

您从apache获得的结果只是表示您的whoami是以nobody身份运行的。这是理所当然的,我强烈建议不要改变这一点。

imagemagick无法工作的原因可能与php代码的运行权限没有直接关系。没有足够的信息来准确诊断问题,但很可能是可执行文件或库搜索失败。确保二进制文件和库对于nobody是可读的,并且它们位于apache能够找到它们的位置。特别是确保正确设置了$PATH$LD_LIBRARY_PATH

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8947782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档