Spatie Browsershot在Linux服务器上不起作用。出现错误sh:节点:找不到命令

时间:2019-09-15 10:53:51

标签: php node.js linux laravel browsershot

我在laravel项目中使用Browsershot。当我在localhost上使用时,它运行完美。 但是,无论我做什么,我似乎都无法在实时服务器上运行它。 我正在Linux VPS上运行它。

这是我的代码(在控制器内):

    use Illuminate\Http\Request;
use Spatie\Browsershot\Browsershot;
use Spatie\Image\Manipulations;

class screenshotController extends Controller
{
    public function take($url){

        $directory = "screenshots/" . date('m') . "/";
        $id = uniqid(). ".jpeg";

        if (!file_exists($directory)) {
            mkdir($directory, 0777, true);
        }

        Browsershot::url("http://".$url)
            ->windowSize(1920, 1080)
            ->fit(Manipulations::FIT_CONTAIN, 525, 394)
            ->noSandbox()
            ->ignoreHttpsErrors()
            ->save($directory.$id);
            return $directory.$id;
    }
}

我也尝试添加->setNodeModulePath("/public_html/node_modules/")

这是我得到的错误:

    (1/1) ProcessFailedException
The command "PATH=$PATH:/usr/local/bin NODE_PATH='/public_html/node_modules/' node 
'/home/XXXX/public_html/vendor/spatie/browsershot/src/../bin/browser.js' 
'{"url":"http:\/\/xxxxxxx.net","action":"screenshot","options": 
{"type":"png","path":"screenshots\/09\/5d7e151bf330c.jpeg","args":["--no-sandbox"],"viewport": 
{"width":1920,"height":1080},"ignoreHttpsErrors":true}}'" failed.

Exit Code: 127(Command not found)

Working directory: /home/XXXXX/public_html/public

Output:
================


Error Output:
================
sh: node: command not found

我假设它与npm位置或node_modules位置有关。

我看到了this section in the manual

Browsershot::html('Foo')
->setNodeBinary('/usr/local/bin/node')
->setNpmBinary('/usr/local/bin/npm');

但是我真的不了解如何根据自己的情况使用它。

任何帮助将不胜感激。

谢谢!

0 个答案:

没有答案