我正在尝试让PhantomJS通过PHP运行。
当我通过命令行直接运行JavaScript文件时,它可以正常工作。当我在命令行中运行php render_html.php
时,它只运行一个exec(),它运行正常。但是,当我尝试在浏览器中打开这个php文件时,它什么也没做。我甚至没有得到回应。
我已经在OS X上本地完成了所有这些测试,并且在我的EC2服务器上,我得到了相同的结果。
答案 0 :(得分:0)
这可能是权限问题,请检查运行Web服务器的用户是否有权运行phantomjs可执行文件。
答案 1 :(得分:0)
(代表OP发布)。
它似乎确实是权限问题。看起来Apache的处理方式可能与其他用户不同?即使标准权限允许任何用户访问PhantomJS应用程序,apache仍然无法使用。
任何有类似问题的人都应该通读this question and the answers。
这是我针对特定情况(在Linux服务器上)的略微适应的解决方案。编辑您的sudoers文件(/ etc / sudoers)以包含以下行:
apache ALL=NOPASSWD: /usr/bin/phantomjs
我用emacs做了这个,(C-x C-q启用了只读文件的编辑)。我似乎没有任何问题,但我想建议使用名为visudo的东西来编辑sudoers。 Emacs为我工作,但你应该查阅。
这使apache用户可以通过提供sudo访问权限显式访问PhantomJS应用程序,仅限于PhantomJS应用程序。
答案 2 :(得分:-1)
我最近在centos 7环境中使用了phantomjs,并遇到了与op相同的问题。我尝试了在stackoverflow中找到的解决方案和方法,因此我不太确定哪种方法有效或哪些方法一起解决问题。我试过了