在一个shell中我做了简单的whoami,我得到了geoff,这很好,因为那就是我。
在php文件中我有shell_exec('whoami');我没有人。
在我看来,这可能是解释我原始问题的一个区别:imagemagick可以从shell运行,但不能在php脚本中运行。
现在通过这个网站工作,我认为这意味着我的apache xampp会分配不同的用户名,而不是使用我通常的用户名。
我试图通过sudo改变我在php中的登录信息,但这对我来说还不起作用。
有人可以帮忙吗?
答案 0 :(得分:2)
应该很容易理解。
geoff
身份登录,这就是您所获得的。nobody
为所有者,这就是从PHP shell_exec('whoami');
获得的结果。答案 1 :(得分:1)
@anubhava在运行whoami
时获得两个不同答案的原因是正确的。但是,如果您尝试使用ImageMagick将PDF转换为PNG(就像您对问题的评论一样),如果脚本的PATH不包含,即使使用ImageMagick的convert
的完整路径也行不通Ghostscript的路径位置也是。在不弄乱任何用户路径的情况下,您可以添加:
putenv("PATH=/usr/local/bin:/usr/bin:/bin");
或类似的东西取决于您的设置。 gs
可执行文件必须位于脚本用户的路径中,否则ImageMagick将无法转换PDF或EPS文件。
答案 2 :(得分:0)
您获得的whoami
结果只表示您的apache正在以nobody
运行。这是应该的,我强烈建议不要改变它。
imagemagick不起作用的原因可能与运行php代码的权限没有直接关系。没有足够的信息来准确诊断问题,但很可能是可执行文件或库搜索失败。确保nobody
可以读取二进制文件和库,并且它们位于apache将找到它们的位置。特别要确保$PATH
和$LD_LIBRARY_PATH
设置正确。
答案 3 :(得分:0)