doujiao1538 2014-06-19 07:08
浏览 146
已采纳

使用exec()从PHP运行PhantomJS

I've got the following script:

#!/bin/sh
export DISPLAY=:0
phantomjs --version

It try to run it from the following PHP script:

<?php
$result = shell_exec('sh test.sh'); 
echo $result;
?>

This script return the following error:

[Thu Jun 19 10:31:31 2014] [error] [client] test.sh: line 3: phantomjs: command not found

I tried to run phantomjs -v by hand in a console, and it runs fine. I checked the PATH, and phantomjs is correctly defined and found.

The execution environment is a virtual Server with LiveConfig. Can someone help me understand what I'm doing wrong ?

  • 写回答

4条回答 默认 最新

  • dongque6377 2014-06-19 13:05
    关注

    Your PATH probably lacks the location for the phantomjs executable. PhantomJS is probably installed in /usr/local/bin so you need to add this to your PATH variable:

    #!/bin/sh
    export DISPLAY=:0
    PATH=$PATH:/usr/local/bin
    phantomjs --version
    

    To check what the current PATH is, you could begin the shell script with:

    #!/bin/sh
    echo $PATH
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • dongxie1907 2014-06-19 07:41
    关注

    Do not use exec(). Never. It's a bad way.

    Use the php-phantomjs and PhantomJS Runner instead.

    评论
  • dongrenzheng1619 2015-02-04 23:00
    关注

    It could be an issue with shell_exec() and line breaks, try adding "2>&1" to the string you are passing:

    $result = shell_exec('sh test.sh 2>&1'); 
    

    this worked for me, found it in the top comment here, naturally ;)

    评论
  • doulang5323 2017-10-03 10:11
    关注
    <?php
             exec('/usr/local/bin/phantomjs path/somescript.js');
    ?>
    

    Yes. Sometimes phantomjs don't need full path in some environment without generate any error. However, sometimes it does.

    Always use the full path for all argument in the php command.

    Did you use the fullpath for hello.js?

    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 如何通过求后验分布求得样本中属于两种物种其中一种的概率?
  • ¥15 q从常量变成sin函数,怎么改写python代码?
  • ¥15 图论编程问题,有可以指导的吗
  • ¥15 DEA的CCR模型画图
  • ¥15 请假各位一个关于安卓车机的问题
  • ¥15 光谱仪怎么看这样的透射谱
  • ¥15 pyqt5 如何实现输入框输入关键词,下拉框显示模糊查询返回的结果?
  • ¥20 fluent模拟,可以燃烧和相变同时模拟吗?
  • ¥50 海康摄像头,C#如何识别车牌号码和抓取JPG
  • ¥15 yolov5 pt转engine的问题