在web服务器上安装CasperJS和PhantomJS

Installing CasperJS and PhantomJS on a web server

本文关键字:CasperJS PhantomJS 安装 web 服务器      更新时间:2023-09-26

我将phantomjs-1.9.7-macosxcasperjs1.1-beta放入两个独立的文件夹中。在根目录中,我有index.html,在那里我调用hello.js这是一个来自casparjs入门示例的最小抓取脚本。显然我得到了:

未捕获引用错误:未定义要求

因为require()在浏览器/客户端中不存在。

然后我尝试用PHP设置环境并执行它

putenv("PHANTOMJS_EXECUTABLE=/phantomjs/bin/phantomjs");
echo "Running PhantomJS version: ";
echo exec('/phantomjs/bin/phantomjs --version 2>&1');
echo "Running CasperJS version: ";
echo exec('/casperjs/bin/casperjs --version 2>&1');

但服务器以一个新的错误作出响应:

警告:由于安全原因,已在中禁用exec()

我找不到任何解决方法,所以我决定后退一步,在本地XAMPP web服务器上运行它。我遵循了类似问题的答案,但CasperJS再次出现错误:

[Erno 13]权限被拒绝;你安装了phantomjs吗?

我为目录尝试了"sudo-chmoda+rx",但没有成功。

我找不到解决我任何问题的办法。我用这些简单的例子只是为了测试。所有这些都可以从终端运行良好(以及本地web服务器上的PHP文件)。我认为问题在于服务器上的集成,无论是本地的还是网络的。

PhantomJS是一个浏览器,您需要调用它来执行一些导航脚本。这个脚本可能会打开页面并对结果进行处理。CasperJS构建在PhantomJS之上,简化了编写PhantomJS脚本所需的大量工作。

PhantomJS/CasperJS脚本无法在客户端浏览器中执行它需要在服务器上调用,在CasperJS/PantomJS内部运行,结果可以传递给客户端。

你要么需要

  • 启用exec/shell_exec
  • 使用编写您的CasperJS脚本作为web服务器

PhantomJS提供了web服务器模块,您可以使用该模块让PhantomJS接受HTTP请求,打开带有一些CasperJS代码的页面,做一些事情并将结果写入响应。您可以用这种方式启动一个CasperJS实例,并让PHP将请求转发给CasperJS。