gpt4 book ai didi

PHP 执行 casperjs/phantomjs 脚本

转载 作者:搜寻专家 更新时间:2023-11-01 00:32:04 25 4
gpt4 key购买 nike

我在使用 PHP 执行 casperjs 脚本时遇到问题:

<?php
putenv("PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs");
var_dump(exec("echo \$PATH"));
exec("/usr/local/bin/casperjs hello.js website.com 2>&1",$output);
var_dump($output);

结果如下:

string(43) "/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:."
array(1) {
[0]=>
string(36) "env: node: No such file or directory"
}

我能找到的唯一 stackoverflow 帖子暗示我的路径有问题,并且 PHP 用户可能无法访问它需要的东西。

我还尝试了以下操作:sudo ln -s/usr/bin/nodejs/usr/bin/node

有谁知道我需要做什么或更改才能解决此错误?

谢谢

最佳答案

我的猜测是你在某个地方有一些假设安装了 Node 的东西。

首先,您是否从命令行运行 php? IE。作为 bash shell 中的 php test.php。如果是这样,您可以按原样运行下面的命令。如果通过网络服务器,环境会有所不同。我将从制作 phpinfo(); script 开始,然后通过 shell_exec() 命令运行故障排除命令。但是,因为这很痛苦,所以我会先从命令行让它工作,并且只有在通过 Web 服务器运行时行为不同时才会弄乱它。 (顺便说一句,如果您从 cron 作业运行,那么环境可能会略有不同。但只有在命令行运行但不能从 cron 运行时才担心这一点。)

hello.js 疑难解答

简单的。确保您的脚本没有在任何地方引用 node。还要记住你不能使用 Node 模块。因此,寻找不应该存在的 require() 命令。

对您的 bash shell 进行故障排除

运行 printenv | grep -i node 查看是否有任何内容。但是当 PHP 运行 shell 命令时,其他一些文件也会运行。因此,请检查 /etc/profile~/.bash_profile 中的内容。还要检查 /etc/profile.d//etc/bashrc~/.bashrc。您基本上是在寻找任何提及 node 的内容。

phantomjs/casperjs 疑难解答

你是怎么安装phantomjs和casperjs的?/usr/local/bin 下的实际二进制文件或符号链接(symbolic link),或者它们是 .例如。在我的机器上:

cd /usr/local/bin
ls -l casperjs phantomjs

给出:

lrwxrwxrwx 1 darren darren 36 Apr 29  2014 casperjs -> /usr/local/src/casperjs/bin/casperjs
lrwxrwxrwx 1 darren darren 57 Apr 29 2014 phantomjs -> /usr/local/src/phantomjs-1.9.7-linux-x86_64/bin/phantomjs

然后检查每个文件:

head /usr/local/src/casperjs/bin/casperjs
head /usr/local/src/phantomjs-1.9.7-linux-x86_64/bin/phantomjs

第一个告诉我 casper 实际上是一个 python 脚本 #!/usr/bin/env python,而第二个用垃圾填满屏幕,告诉我它是一个二进制可执行文件。

关于PHP 执行 casperjs/phantomjs 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28015507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com