繁体   English   中英

Mac OSX cmd从命令行运行,从php shell_exec()失败

[英]Mac OSX cmd works from command line, fails from php shell_exec()

我在Mac OS X 10.9.4上

我可以从命令行成功运行此命令以生成图像或google.com

wkhtmltoimage http://www.google.com /Users/me/Sites/google.jpg

但是当我尝试使用php命令从我的网站内部执行相同的命令时

$cmd='wkhtmltoimage http://www.google.com /Users/me/Sites/google.jpg';
shell_exec($cmd);

我收到以下错误:

sh: wkhtmltoimage: command not found

这是权限问题吗? 如果是这样,我如何使它工作?

====

更新资料

我设置了建议的完整路径,例如@Mureinik,现在我取得了一些进展,错误消息是

Loading page (1/2)
[>                                                           ] 0%
[======>                                                     ] 10%
[=============>                                              ] 23%
[==================>                                         ] 31%
[===================>                                        ] 33%
[========================>                                   ] 41%
[=====================================>                      ] 62%
[=======================================>                    ] 65%
[========================================>                   ] 67%
[=========================================>                  ] 69%
[==========================================>                 ] 71%
[==============================================>             ] 78%
[==================================================>         ] 84%
[===================================================>        ] 86%
[============================================================] 100%
Rendering (2/2)                                                    
[>                                                           ] 0%
[===============>                                            ] 25%
Error: Could not write to output file                             
Error: Could not save image
[============================================================] 100%
Done                                                               
Exit with code 1, due to unknown error.

我现在有权限问题吗?

====

更新资料

我将文件权限更改为我的目的地,然后就解决了。

问题可能是shell_exec使用的$PATH与您使用的$PATH不同,因此无法找到wkhtmltoimage 在您自己的shell中,您可以使用which wkhtmltoimage来确定确切的安装位置,然后将shell_exec与完整路径一起使用,例如:

$cmd='/opt/wkhtmltoimage http://www.google.com /Users/me/Sites/google.jpg';
shell_exec($cmd);

对于其他偶然发现此答案的人,我的命令涉及将映像保存到目录中,而shell_exec没有对该目录的写入权限。 我作为用户确实拥有权利,这就是为什么我能够成功手动执行查询的原因。

因此,我只是更改了目录的权限,以便可以将其写入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM