Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Linux Web服务器上运行Phantomjs_Javascript_Php_Linux_Wordpress_Phantomjs - Fatal编程技术网

Javascript 如何在Linux Web服务器上运行Phantomjs

Javascript 如何在Linux Web服务器上运行Phantomjs,javascript,php,linux,wordpress,phantomjs,Javascript,Php,Linux,Wordpress,Phantomjs,我正在尝试将Phantomjs的可执行文件上载到我的web服务器上。目前,wordpress安装在该服务器上,因此主要通过使用php函数来调用phantom。服务器运行的是Linux x86_64,这与我下载的Phantom存储库相同。在我的一个wordpress模板文件中,我尝试调用phantom并尝试运行脚本,但没有任何响应。我知道javascript是正确的,因为它是提供的示例之一。此外,Phantomjs文件具有足够的运行权限。所以没有问题。下面是我试图使用的所有代码,以使其正常工作 &

我正在尝试将Phantomjs的可执行文件上载到我的web服务器上。目前,wordpress安装在该服务器上,因此主要通过使用
php
函数来调用phantom。服务器运行的是Linux x86_64,这与我下载的Phantom存储库相同。在我的一个wordpress模板文件中,我尝试调用phantom并尝试运行脚本,但没有任何响应。我知道javascript是正确的,因为它是提供的示例之一。此外,Phantomjs文件具有足够的运行权限。所以没有问题。下面是我试图使用的所有代码,以使其正常工作

<?php 
/* 
Template Name: Home Template
Description: Page template to show home page content.
*/

//phantom/phantomjs-directory/bin/phantomjs
//phantom/phantomjs-directory/examples/version.js

get_header(); 
?>
<?php 
echo exec('phantom/phantomjs-directory/bin/phantomjs phantom/phantomjs-directory/examples/version.js');
?>

没有任何内容被记录或回显。为什么会这样

用echo和backticks试试

echo `/phantom/phantomjs myscript.js`; 

用echo和backticks试试

echo `/phantom/phantomjs myscript.js`; 
正确的方法是

exec('/phantom/phantomjs myscript.js',$response);
回波内爆(“
”,$response);
无论如何,您应该首先通过SSH登录到服务器并尝试手动运行脚本来检查脚本是否工作。PhantomJS二进制文件可能与服务器处理器体系结构不匹配(x64与x86)

还要注意二进制文件和脚本的路径,最简单的方法是使用绝对路径。

正确的方法是

exec('/phantom/phantomjs myscript.js',$response);
回波内爆(“
”,$response);
无论如何,您应该首先通过SSH登录到服务器并尝试手动运行脚本来检查脚本是否工作。PhantomJS二进制文件可能与服务器处理器体系结构不匹配(x64与x86)


还要注意二进制文件和脚本的路径,最简单的方法是使用绝对路径。

我在这条路径上犯了几个错误。为我做到这一点的黄金法则是:

echo exec('/home/mainshee/public_html/wp-content/themes/twentyseventeen/phantom/phantomjs-directory/bin/phantomjs /home/mainshee/public_html/wp-content/themes/twentyseventeen/phantom/phantomjs-directory/examples/version.js');

我犯的主要错误是路径不准确。你可能认为只包括你已经在的位置的路径就足够了,但我发现他们想要整个路径。从头到尾。我还确保我试图执行的每个文件都有
0755
权限。我采取的最后一个预防措施是使用
scp
上传phantomjs文件夹,而不是传统方法。这样做是为了避免任何腐败(尽管我不确定它最终是否会产生任何影响)。希望这对其他人有帮助

这次我犯了几个错误。为我做到这一点的黄金法则是:

echo exec('/home/mainshee/public_html/wp-content/themes/twentyseventeen/phantom/phantomjs-directory/bin/phantomjs /home/mainshee/public_html/wp-content/themes/twentyseventeen/phantom/phantomjs-directory/examples/version.js');

我犯的主要错误是路径不准确。你可能认为只包括你已经在的位置的路径就足够了,但我发现他们想要整个路径。从头到尾。我还确保我试图执行的每个文件都有
0755
权限。我采取的最后一个预防措施是使用
scp
上传phantomjs文件夹,而不是传统方法。这样做是为了避免任何腐败(尽管我不确定它最终是否会产生任何影响)。希望这对其他人有帮助

我确信服务器上的Phantomjs版本与服务器处理器体系结构兼容。在从网站安装Phantomjs x86_64之前,我验证了该体系结构是x86_64。我使用的脚本就是他们的例子之一。当我在上面使用你的代码时,唯一得到回应的是“数组”。我主要关心的是,在上面显示的脚本中,没有消息被记录到控制台。这让我相信脚本并没有真正运行,它只是在响应默认响应。你的想法?我的错,$response确实是数组,因此请参阅更新的答案,了解如何查看它。脚本在
SSH
中完美运行,但当我根据上面的建议调整代码时,什么也没有发生。那么
$response
数组是空的吗?Try
exec('/phantom/phantomjs myscript.js',$response,$return_var)
什么是
$return\u var
?我确信我服务器上的Phantomjs版本与服务器处理器架构兼容。在从网站安装Phantomjs x86_64之前,我验证了该体系结构是x86_64。我使用的脚本就是他们的例子之一。当我在上面使用你的代码时,唯一得到回应的是“数组”。我主要关心的是,在上面显示的脚本中,没有消息被记录到控制台。这让我相信脚本并没有真正运行,它只是在响应默认响应。你的想法?我的错,$response确实是数组,因此请参阅更新的答案,了解如何查看它。脚本在
SSH
中完美运行,但当我根据上面的建议调整代码时,什么也没有发生。那么
$response
数组是空的吗?Try
exec('/phantom/phantomjs myscript.js',$response,$return_var)什么是
$return\u var
?使用此方法不会回显任何内容从shell运行时会发生什么?另外,确保.js在
pwd
中运行
bin/phantomjs examples/hello.js
输出完美的结果。但是,从php文件中进行回显根本不会产生任何结果。使用这种方法不会进行任何回显。从shell运行时会发生什么?另外,确保.js在
pwd
中运行
bin/phantomjs examples/hello.js
输出完美的结果。但是,从php文件中回音根本不会产生任何结果。