当前位置: 首页 > 知识库问答 >
问题:

在PHP服务器端运行PhantomJS

法和安
2023-03-14

我正在尝试在LinuxWeb服务器上使用PHP运行PhantomJS。这最终将作为cron作业运行,但现在我通过一个PHP脚本运行它,我正在通过FTP上传到服务器。

PHP脚本:

$cmd = '/usr/local/bin/phantomjs /home/accountname/public_html/myscript.js';
$result = exec($cmd);
var_dump($result);

(请注意,出于隐私考虑,我已将上面路径中的帐户名更改为“accountname”,但这在我的真实脚本中是正确的,并且是从大量其他PHP脚本复制的,这些脚本都可以完美地工作。)

myscript.js内容:

console.log('Hello, world!');
phantom.exit();

结果是:

string(0) ""

我在PhantomJS网站上尝试了许多示例,但我从未得到任何输出——无论是在屏幕上、控制台中还是在创建屏幕截图的示例中,PNG文件从未出现在正确的位置——即使我指定了确切的路径。

我确实尝试返回了PhantomJS版本,这返回了正确的版本:

$cmd = '/usr/local/bin/phantomjs --version';
$result = exec($cmd);
var_dump($result);

返回:

string(5) "1.9.2"

我知道"exec"在PHP中不是一个安全的运行方式-但是我只是尝试测试PhantomJS是否可以开始工作,然后我们将调整一切以安全地工作。

有什么想法吗?提前感谢。

共有1个答案

佟颖逸
2023-03-14

尝试使用:

$cmd = 'unset DYLD_LIBRARY_PATH ;';
$cmd.= ' /usr/local/bin/phantomjs'; //where is isntalled phantomjs
$cmd.= ' /var/www/rasterize.js'; //where is your script
exec($cmd.' 2>&1', $output);
print_r($output);

这个脚本是在Ubuntu 12.04上用PHP5.4测试的。

 类似资料:
  • 我有一个php docker容器,我的Symfony项目在哪里。 这是我的docker-compose.yml 我想使用以下命令启动我的symfony项目: 但当我想访问url时,它不起作用。我收到以下错误消息: localhost页不行 localhost未发送任何数据。 我该怎么解决这个问题? PS:我用docker for mac 和输出: [2016-08-06 14:09:53]php.

  • 问题内容: 当我尝试检入机器B时,我正在从机器A运行python manage.py runserver。我键入的URL是http:// A:8000 / 我收到类似系统返回的错误:(111)连接被拒绝 问题答案: 你可以通过以下方式为网络中的计算机运行它 这样一来,你就可以从网络中的任何计算机访问服务器。只需在浏览器中的其他机器上键入你服务器的IP地址…就可以开始使用…了。 或者在你的情况下:

  • 这里有一些在服务器运行 WSGI 应用的方式。当你正在开发一个应用,你往往不想在一个成 熟服务器上部署和运行,取而代之的是一个轻量服务器。 Werkzeug 就内置了这样一个轻量 的服务器。 在一个服务器上运行 start-myproject.py 最简单的方法如下示例: #!/usr/bin/env python # -*- coding: utf-8 -*- from werkzeug.se

  • 我正在开发一个android和iOS应用程序,需要有一个RESTful服务器端。直到今天,我在eclipse上使用Jersey和RunJettyRun,但我决定开始使用新的更好的东西!我搬到了DropWizard和IntelliJ IDEA 这些是我安装的软件和我已经处理的事情:-Java 8-Maven 3.1.1-Maven和Java的环境变量。 现在,我所做的是跟随他们网站上的DropWiz

  • 问题内容: 我想在两个或更多不同的node.js应用程序服务器之间启用基于套接字的p2p通信。我正在使用socket.io处理给定服务器与其服务的Web应用程序之间的所有此类通信- 但我正在寻找的是一种服务器与服务器之间进行通信的方法。 我最初以为它像这样简单: 但是,事实证明,服务器端socket.io实现没有提供“连接”方法,仅提供了侦听方法。 为什么是这样?为什么不能将节点应用程序服务器视为

  • 问题内容: 我在CI和CD上创建了Jenkinsfile,Dockerfile,Dockerfile.test到CI和CD,在GitHub上构建了我的服务器API,我在Jenkins上构建了该构建,并且构建成功,并且我的docker在Jenkinsfile阶段也在容器上运行,我创建了用于测试和部署在服务器API上,并使用docker作为容器 我也使用docker-compose在docker上运行