В консоли команда работает а в PHP нет

12
lutskboy
На сайте с 22.11.2013
Offline
139
312

Привет

запускаю с консоли скрипт

node /var/www/www-root/data/www/site.net/deepl.js hellow

все отлично работает. выводит на екран перевод

если с php 

$res = shell_exec('node /var/www/www-root/data/www/site.net/deepl.js hellow');

var_dump($res);

null вывод

из за чего такое произошло? раньше все работало. на впс ничего не меняли

temniy
На сайте с 15.03.2008
Offline
218
#1
Как вариант - нет функции 
shell_exec

Смотрите ошибки php

⭐ Лучший хостинг от 0.8 евро, VPS от 4 евро, VPN недорого - разные локации - любые карты - https://fornex.com/c/ffi2e3/ru/services/
lutskboy
На сайте с 22.11.2013
Offline
139
#2
ошибок нет
Aisamiery
На сайте с 12.04.2015
Offline
254
#3
lutskboy #:
ошибок нет

попробуйте указать полный путь до ноды, с консоли вы запускаете от юзера у которого есть переменная PATH, но это как предположение

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
Сергей
На сайте с 10.07.2022
Offline
14
#4
Нет доступа на запуск

Проверить очень легко

В консоли whoami 
В php whoami > file или вывести через параметры exec
Геодезические работы в московской области https://pravozem.ru/uslugi/moskva/geodeziia/ заказать межевание, топосъемку, оформление строительства
W1
На сайте с 22.01.2021
Offline
168
#5
which node
Мой форум - https://webinfo.guru –Там я всегда на связи
temniy
На сайте с 15.03.2008
Offline
218
#6
lutskboy #:
ошибок нет

try catch пробовали?

temniy
На сайте с 15.03.2008
Offline
218
#7

Про shell_exec в мануале же написано - 


Эта функция может вернуть null  в двух случаях: если произошла ошибка или если выполняемая команда ничего не выводит. Не пользуйтесь этой функцией, для определения, успешно ли выполнилась команда. Вместо этого используйте exec(), так как она предоставляет возможность проверить код возврата.
lutskboy
На сайте с 22.11.2013
Offline
139
#8
temniy #:
Вместо этого используйте exec(),

пробовал. пустой массив

код у меня примерно такой

module.paths.push('/var/node/node_modules');

const text = decodeURIComponent(process.argv[2])

const puppeteer = require('puppeteer');


async function startParser(url) {

    console.log('это выводит');

        const browser = await puppeteer.launch({
            headless: true,
            ignoreHTTPSErrors: true,
            args: ['--no-sandbox']
        });

    console.log(browser); -- ето уже не выводит

    try {

        const page = await browser.newPage();

        page.setExtraHTTPHeaders({
                'Accept-Language' : 'ru-RU'
        })


        await page.setViewport({ width: 1300, height: 700 });

        await page.setUserAgent('Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4347.135 Safari/537.36');

        await page.setDefaultTimeout(20000);

        await page.goto(url);

        код код ...

        await page.evaluate((t) => {
            $('.lmt__source_textarea').val(t)
        }, text);


        код код код ...


        const data = {
            ok: result
        }

        console.log(JSON.stringify(data));

        await browser.close();


    } catch (error) {
        console.log(JSON.stringify({error:error}));
        await browser.close();
    }


}

startParser('https://www.deepl.com/translator');
lutskboy
На сайте с 22.11.2013
Offline
139
#9
Сергей #:
В консоли whoami 
В php whoami > file или вывести через параметры exec

var_dump(shell_exec('whoami > '.__FILE__)); ? так?

www-root выводит

temniy
На сайте с 15.03.2008
Offline
218
#10
lutskboy #:
-- ето уже не выводит

Значит ошибка выше, а этот кусок в try не обернут.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий