Меню

Bitrix batch json выдает ошибку

 

Пользователь 1866671

Заглянувший

Сообщений: 24
Баллов: 1
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 03.04.2018

#1

0

18.01.2019 05:21:16

Есть файл с n-строк, пример.
112076 — 25.08.2014 01:38:57*112950 — 27.08.2014 03:13:15*112961 — 27.08.2014 03:41:13………………….

На выходе метод возвращает «ERROR_METHOD_NOT_FOUND».

Код
function executeHook($params) {
    $queryUrl = '************************/batch.json';
    $queryData = http_build_query($params);

    $curl = curl_init();
    curl_setopt_array($curl, array(
        CURLOPT_SSL_VERIFYPEER => 0,
        CURLOPT_POST => 1,
        CURLOPT_HEADER => 0,
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_URL => $queryUrl,
        CURLOPT_POSTFIELDS => $queryData,
    ));

    $result = curl_exec($curl);
    curl_close($curl);

    return json_decode($result, true);

}
$text = file_get_contents($_SERVER['DOCUMENT_ROOT']."/local/php_interface/list.txt");
$arr = explode('*', $text);

for($j=0; $j<count($arr)/50; $j++){
    $i+=$j*50;
    $batch = [];
    for ($k=1; $k<=50;$k++){
        $val = $arr[$k+$i];
        $arr_res = explode(" - ", $val);
        $batch['cmd_'.$k] = array(
            "list_deal" => 'crm.deal.list?'
                .http_build_query(array(
                    "filter" => array('UF_CRM_1544617186'=>$arr_res[0]),
                )),
            "update_deal" => 'crm.deal.update?'
                .http_build_query(array(
                    "id" => '$result[list_deal][CONTACT][0]',
                    "fields" => array('DATE_CREATE'=>$arr_res[1]),
                ))
        );
    }
    $i++;

    //echo "<pre>";
    //print_r($batch);
    $res = executeHook(array('cmd'=> $batch));
    //print_r($res);
}

В доках очень печально по этому методу. В чем может быть ошибка?

 

Пользователь 4258402

Заглянувший

Сообщений: 2
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 17.05.2020

Я выяснил только что в batch можно положить массив лишь одного уровня…
Например
$batch[1] => ‘crm.product.add…’
$batch[2] => ‘crm.product.add…’
можно

$batch[1] => ‘crm.product.list…’
$batch[2] => ‘crm.product.update…’
можно

$batch[1][1] => ‘crm.product.list…’
$batch[1][2] => ‘crm.product.update…’
$batch[2][1] => ‘crm.product.list…’
$batch[2][2] => ‘crm.product.update…’
нельзя

А вы как раз пытаетесь это сделать.

Может я не прав, и Вы, спустя 1.5 года нашли решение? )

 

Пользователь 4258402

Заглянувший

Сообщений: 2
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 17.05.2020

#3

0

17.05.2020 10:34:51

Цитата
Вячеслав Довнар написал:
Код
$vanna = 50; // количество запросов
$packet = 20; // количество в пакете

foreach ($tovars as $key => $good) {
    $k++;
    $batch  = array_merge($batch,
        array(
            'find_good_'.$key => 'crm.product.list?'.http_build_query( // ключик по товару
                array(
                    'sel ect' => array('ID','NAME','SECTION_ID','PROPERTY_190'), //выбираю нужные МНЕ поля
                    'filter' => array(
                        'PROPERTY_190' => $good['bitrix_custom_id'], // поле для поиска товара
                    )
                )
            ),
            'update_good_'.$key => 'crm.product.update?'.http_build_query( 
                array(
                    'id' => '$result[find_good_'.$key.'][0][ID]', // берем результат именно из ключика по товару
                    'fields' => array(
                        'NAME' => $good['name'], // обновляю имя
                    )
                )
            )
        )
    );

    if ( ($k % $packet == 0) || ($k == count($tovars)) ) { // если набралось нужное количество запросов или же список подошел к концу
        $btch = executeHook($queryUrl, array('cmd' => $batch)); // выполняем хук
    }

    if ($k % ($packet*$vanna) == 0) { // если ванна наполнена ждем 2 сек
        sleep(2);
    }
}

сделал вот так вот…

грубо говоря получается так, это не код, а как бы объяснение структуры массива.

$batch[1] => ‘crm.product.list…’
$batch[2] => ‘crm.product.update from batch_1…’
$batch[3] => ‘crm.product.list…’
$batch[4] => ‘crm.product.update fr om batch_3…’

все же быстрее в 3 раза получается, чем если каждый товар по отдельности, проверял на объеме в 50 тыс товаров.

 

Пользователь 4677649

Заглянувший

Сообщений: 2
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 10.10.2020

#4

0

01.11.2020 15:05:04

Цитата
Иван Морылев написал:
Я выяснил только что в batch можно положить массив лишь одного уровня…
Например
$batch[1] => ‘crm.product.add…’
$batch[2] => ‘crm.product.add…’
можно

$batch[1] => ‘crm.product.list…’
$batch[2] => ‘crm.product.update…’
можно

$batch[1][1] => ‘crm.product.list…’
$batch[1][2] => ‘crm.product.update…’
$batch[2][1] => ‘crm.product.list…’
$batch[2][2] => ‘crm.product.update…’
нельзя

А вы как раз пытаетесь это сделать.

Может я не прав, и Вы, спустя 1.5 года нашли решение? )

А можете подробней написать, как через batch добавить на сайт сразу например несколько товаров ?  

Содержание

  1. json error syntax error 4
  2. Решение
  3. Другие решения
  4. Описание
  5. Список параметров
  6. Возвращаемые значения
  7. Примеры
  8. Смотрите также
  9. json_decode возвращает JSON_ERROR_SYNTAX, но он-лайн форматировщик говорит, что JSON в порядке
  10. Решение
  11. Другие решения
  12. Bitrix: JSON error: Syntax error
  13. json_decode возвращает JSON_ERROR_SYNTAX, но он-лайн форматировщик говорит, что JSON в порядке
  14. Решение
  15. Другие решения
  16. json_last_error
  17. Описание
  18. Список параметров
  19. Возвращаемые значения
  20. Примеры
  21. Смотрите также

json error syntax error 4

У меня очень странная проблема.

У меня есть веб-сервис JSON.

Но когда я загружаю свой JSON с этим кодом:

Я получил ошибку: SYNTAX ERROR

ЧТО НЕ ПОМОГАЕТ ПОЛНОЙ ВСЕ.

(но мне пока не удалось установить PHP 5.5, и я не уверен, что эта функция даст мне больше деталей)

Решение

Я столкнулся с той же проблемой, на самом деле есть некоторые скрытые символы, невидимые, и вам нужно удалить его.
Вот глобальный код, который работает во многих случаях:

Другие решения

Удаление BOM (Byte Order Mark) часто является решением, которое вам нужно:

У вас не должно быть спецификации, но если она есть, она невидима, поэтому вы ее не увидите !!

использование BOM Cleaner если у вас есть много файлов, чтобы исправить.

Я решил эту проблему, добавив stripslashes в строку, перед json_decode.

Чтобы собрать все вместе, я подготовил JSON-оболочку с расшифровкой автокорректирующих действий. Самую последнюю версию можно найти в моем GitHub Gist .

Вы не показывали свой JSON, но это похоже на то, что это может быть неверная последовательность UTF-8 в аргументе, большинство онлайн-валидаторов не поймают его.
убедитесь, что ваши данные UTF-8, а также проверьте, есть ли у вас иностранные символы.
Вам не нужен PHP5, чтобы увидеть вашу ошибку, используйте журнал ошибок() регистрировать проблемы.

Попробовав все решение без результата, это сработало для меня.

Надеюсь, это поможет кому-то

У меня была такая же проблема. Для меня это было вызвано echo »

В начале файла я объявил тег разрыва строки … Так что это была ошибка для меня. Удалив этот тег разрыва строки, я смог […]

(PHP 5 >= 5.3.0, PHP 7)

json_last_error — Возвращает последнюю ошибку

Описание

Возвращает последнюю ошибку (если она есть), произошедшую во время последнего кодирования/декодирования JSON если при вызове не использовался флаг JSON_THROW_ON_ERROR .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целочисленное значение, которое может быть одной из следующих констант:

Коды ошибок JSON

Константа Значение Доступность
JSON_ERROR_NONE Ошибок нет
JSON_ERROR_DEPTH Достигнута максимальная глубина стека
JSON_ERROR_STATE_MISMATCH Неверный или некорректный JSON
JSON_ERROR_CTRL_CHAR Ошибка управляющего символа, возможно неверная кодировка
JSON_ERROR_SYNTAX Синтаксическая ошибка
JSON_ERROR_UTF8 Некорректные символы UTF-8, возможно неверная кодировка PHP 5.3.3
JSON_ERROR_RECURSION Одна или несколько зацикленных ссылок в кодируемом значении PHP 5.5.0
JSON_ERROR_INF_OR_NAN Одно или несколько значений NAN или INF в кодируемом значении PHP 5.5.0
JSON_ERROR_UNSUPPORTED_TYPE Передано значение с неподдерживаемым типом PHP 5.5.0
JSON_ERROR_INVALID_PROPERTY_NAME Имя свойства не может быть закодировано PHP 7.0.0
JSON_ERROR_UTF16 Некорректный символ UTF-16, возможно некорректно закодирован PHP 7.0.0

Примеры

Пример #1 Пример использования json_last_error()

// Неверная json-строка, которая вызовет синтаксическую ошибку,
// здесь в качестве кавычек мы используем ‘ вместо »
$json [] = « » ;

foreach ( $json as $string )

Результат выполнения данного примера:

Пример #2 Совместное использование json_last_error() и json_encode()

// Некорректная последовательность UTF8
$text = «xB1x31» ;

$json = json_encode ( $text );
$error = json_last_error ();

var_dump ( $json , $error === JSON_ERROR_UTF8 );
?>

Результат выполнения данного примера:

Пример #3 json_last_error() и JSON_THROW_ON_ERROR

// Некорректная последовательность UTF8, вызывающая JSON_ERROR_UTF8
json_encode ( «xB1x31» );

// Не вызовет ошибки JSON
json_encode ( ‘okay’ , JSON_THROW_ON_ERROR );

// Глобальное состояние не будет изменено json_encode()
var_dump ( json_last_error () === JSON_ERROR_UTF8 );
?>

Результат выполнения данного примера:

Смотрите также

  • json_last_error_msg() — Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()
  • json_decode() — Декодирует строку JSON
  • json_encode() — Возвращает JSON-представление данных

I had previously asked the same question. I would like to decode the json from: http://pad.skyozora.com/data/pets.json. Below is the code I used previously:

From the last answer I know there is UTF8 DOM in the json return. I tried the answer from a similar question: json_decode returns NULL after webservice call, but all of the answers not work for me.

And after do more research I found a way that works:

This successfully decode the json into array. However all Chinese and Japanese character string were removed too. Any ideas?

Edited:

and give me the error:

But I couldn’t see any problem with this part of json.

Источник

json_decode возвращает JSON_ERROR_SYNTAX, но он-лайн форматировщик говорит, что JSON в порядке

У меня очень странная проблема.

У меня есть веб-сервис JSON.

Но когда я загружаю свой JSON с этим кодом:

Я получил ошибку: SYNTAX ERROR

ЧТО НЕ ПОМОГАЕТ ПОЛНОЙ ВСЕ.

(но мне пока не удалось установить PHP 5.5, и я не уверен, что эта функция даст мне больше деталей)

Решение

Я столкнулся с той же проблемой, на самом деле есть некоторые скрытые символы, невидимые, и вам нужно удалить его.
Вот глобальный код, который работает во многих случаях:

Другие решения

Удаление BOM (Byte Order Mark) часто является решением, которое вам нужно:

У вас не должно быть спецификации, но если она есть, она невидима, поэтому вы ее не увидите !!

использование BOM Cleaner если у вас есть много файлов, чтобы исправить.

Я решил эту проблему, добавив stripslashes в строку, перед json_decode.

Чтобы собрать все вместе, я подготовил JSON-оболочку с расшифровкой автокорректирующих действий. Самую последнюю версию можно найти в моем GitHub Gist .

Вы не показывали свой JSON, но это похоже на то, что это может быть неверная последовательность UTF-8 в аргументе, большинство онлайн-валидаторов не поймают его.
убедитесь, что ваши данные UTF-8, а также проверьте, есть ли у вас иностранные символы.
Вам не нужен PHP5, чтобы увидеть вашу ошибку, используйте журнал ошибок() регистрировать проблемы.

Попробовав все решение без результата, это сработало для меня.

Надеюсь, это поможет кому-то

У меня была такая же проблема. Для меня это было вызвано echo »

В начале файла я объявил тег разрыва строки … Так что это была ошибка для меня. Удалив этот тег разрыва строки, я смог […]

Источник

Bitrix: JSON error: Syntax error

При настройке сайта, пункт «Рабочий стол — Маркетинг — Поисковая оптимизация — Поисковые системы — Яндекс» при попытке авторизоваться через Яндекс и вводе полученного от Яндекс кода подтверждения получаю «Не удалось получить авторизацию: JSON error: Syntax error [4]». Причем данная ошибка видна только в Mozilla Firefox, в других браузерах просто не происходит авторизации. Битрикс установлен в виртуальной машине от разработчика (Bitrix virtual appliance version 7.4.3).

Обратился в ТП битрикса, неделю переписывался, попросили доступы не только в админку сайта но и доступы к аккаунту Яндекса (зачем?). После недельной переписки с ТП выяснилось, что есть проблема с подключением к сайту именно Яндекса.

Проверить проблему подключения к «oauth.yandex.ru» можно кодом:

$res = stream_socket_client(«ssl://oauth.yandex.ru:443», $errno, $errstr, 5);
var_dump($res);

И проблема была из-за того, что виртуалка была создана на CentOS 6.10, в которой для корректной работы с сервисами Яндекса необходимо принудительно обновить CA.

Делается следующим образом:

На всякий случай скопировали текущие CA (могут быть по другому пути):

cp /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem tls-ca-bundle.pem

Скачали новые и обновили CA.

curl https://www.certum.pl/CA.pem > /etc/pki/ca-trust/source/anchors/certum_pl_CA.pem
update-ca-trust extract

После этого вышеприведенный код перестал выдавать ошибку при подключении к сайту Яндекса.

Источник

json_decode возвращает JSON_ERROR_SYNTAX, но он-лайн форматировщик говорит, что JSON в порядке

У меня очень странная проблема.

У меня есть веб-сервис JSON.

Но когда я загружаю свой JSON с этим кодом:

Я получил ошибку: SYNTAX ERROR

ЧТО НЕ ПОМОГАЕТ ПОЛНОЙ ВСЕ.

(но мне пока не удалось установить PHP 5.5, и я не уверен, что эта функция даст мне больше деталей)

Решение

Я столкнулся с той же проблемой, на самом деле есть некоторые скрытые символы, невидимые, и вам нужно удалить его.
Вот глобальный код, который работает во многих случаях:

Другие решения

Удаление BOM (Byte Order Mark) часто является решением, которое вам нужно:

У вас не должно быть спецификации, но если она есть, она невидима, поэтому вы ее не увидите !!

использование BOM Cleaner если у вас есть много файлов, чтобы исправить.

Я решил эту проблему, добавив stripslashes в строку, перед json_decode.

Чтобы собрать все вместе, я подготовил JSON-оболочку с расшифровкой автокорректирующих действий. Самую последнюю версию можно найти в моем GitHub Gist .

Вы не показывали свой JSON, но это похоже на то, что это может быть неверная последовательность UTF-8 в аргументе, большинство онлайн-валидаторов не поймают его.
убедитесь, что ваши данные UTF-8, а также проверьте, есть ли у вас иностранные символы.
Вам не нужен PHP5, чтобы увидеть вашу ошибку, используйте журнал ошибок() регистрировать проблемы.

Попробовав все решение без результата, это сработало для меня.

Надеюсь, это поможет кому-то

У меня была такая же проблема. Для меня это было вызвано echo »

В начале файла я объявил тег разрыва строки … Так что это была ошибка для меня. Удалив этот тег разрыва строки, я смог […]

Источник

json_last_error

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

json_last_error — Возвращает последнюю ошибку

Описание

Возвращает последнюю ошибку (если она есть), произошедшую во время последнего кодирования/декодирования JSON если при вызове не использовался флаг JSON_THROW_ON_ERROR .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целочисленное значение, которое может быть одной из следующих констант:

Коды ошибок JSON

Константа Значение Доступность
JSON_ERROR_NONE Ошибок нет
JSON_ERROR_DEPTH Достигнута максимальная глубина стека
JSON_ERROR_STATE_MISMATCH Неверный или некорректный JSON
JSON_ERROR_CTRL_CHAR Ошибка управляющего символа, возможно неверная кодировка
JSON_ERROR_SYNTAX Синтаксическая ошибка
JSON_ERROR_UTF8 Некорректные символы UTF-8, возможно неверная кодировка
JSON_ERROR_RECURSION Одна или несколько зацикленных ссылок в кодируемом значении
JSON_ERROR_INF_OR_NAN Одно или несколько значений NAN или INF в кодируемом значении
JSON_ERROR_UNSUPPORTED_TYPE Передано значение с неподдерживаемым типом
JSON_ERROR_INVALID_PROPERTY_NAME Имя свойства не может быть закодировано
JSON_ERROR_UTF16 Некорректный символ UTF-16, возможно некорректно закодирован

Примеры

Пример #1 Пример использования json_last_error()

// Неверная json-строка, которая вызовет синтаксическую ошибку,
// здесь в качестве кавычек мы используем ‘ вместо »
$json [] = «<‘Organization’: ‘PHP Documentation Team’>» ;

foreach ( $json as $string ) <
echo ‘Декодируем: ‘ . $string ;
json_decode ( $string );

switch ( json_last_error ()) <
case JSON_ERROR_NONE :
echo ‘ — Ошибок нет’ ;
break;
case JSON_ERROR_DEPTH :
echo ‘ — Достигнута максимальная глубина стека’ ;
break;
case JSON_ERROR_STATE_MISMATCH :
echo ‘ — Некорректные разряды или несоответствие режимов’ ;
break;
case JSON_ERROR_CTRL_CHAR :
echo ‘ — Некорректный управляющий символ’ ;
break;
case JSON_ERROR_SYNTAX :
echo ‘ — Синтаксическая ошибка, некорректный JSON’ ;
break;
case JSON_ERROR_UTF8 :
echo ‘ — Некорректные символы UTF-8, возможно неверно закодирован’ ;
break;
default:
echo ‘ — Неизвестная ошибка’ ;
break;
>

Результат выполнения данного примера:

Пример #2 Совместное использование json_last_error() и json_encode()

// Некорректная последовательность UTF8
$text = «xB1x31» ;

$json = json_encode ( $text );
$error = json_last_error ();

var_dump ( $json , $error === JSON_ERROR_UTF8 );
?>

Результат выполнения данного примера:

Пример #3 json_last_error() и JSON_THROW_ON_ERROR

// Некорректная последовательность UTF8, вызывающая JSON_ERROR_UTF8
json_encode ( «xB1x31» );

// Не вызовет ошибки JSON
json_encode ( ‘okay’ , JSON_THROW_ON_ERROR );

// Глобальное состояние не будет изменено json_encode()
var_dump ( json_last_error () === JSON_ERROR_UTF8 );
?>

Результат выполнения данного примера:

Смотрите также

  • json_last_error_msg() — Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()
  • json_decode() — Декодирует строку JSON
  • json_encode() — Возвращает JSON-представление данных

Источник

Перейти к контенту

При настройке сайта, пункт «Рабочий стол — Маркетинг — Поисковая оптимизация — Поисковые системы — Яндекс» при попытке авторизоваться через Яндекс и вводе полученного от Яндекс кода подтверждения получаю «Не удалось получить авторизацию: JSON error: Syntax error [4]». Причем данная ошибка видна только в Mozilla Firefox, в других браузерах просто не происходит авторизации. Битрикс установлен в виртуальной машине от разработчика (Bitrix virtual appliance version 7.4.3).

Обратился в ТП битрикса, неделю переписывался, попросили доступы не только в админку сайта но и доступы к аккаунту Яндекса (зачем?). После недельной переписки с ТП выяснилось, что есть проблема с подключением к сайту именно Яндекса.

Проверить проблему подключения к «oauth.yandex.ru» можно кодом:

$res = stream_socket_client(«ssl://oauth.yandex.ru:443», $errno, $errstr, 5);
var_dump($res);

И проблема была из-за того, что виртуалка была создана на CentOS 6.10, в которой для корректной работы с сервисами Яндекса необходимо принудительно обновить CA.

Делается следующим образом:

update-ca-trust enable

На всякий случай скопировали текущие CA (могут быть по другому пути):

cp /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem tls-ca-bundle.pem

Скачали новые и обновили CA.

curl https://www.certum.pl/CA.pem > /etc/pki/ca-trust/source/anchors/certum_pl_CA.pem
update-ca-trust extract

После этого вышеприведенный код перестал выдавать ошибку при подключении к сайту Яндекса.


Jasta

975 / 498 / 101

Регистрация: 20.02.2016

Сообщений: 2,843

1

30.09.2021, 17:44. Показов 1868. Ответов 2

Метки нет (Все метки)


Доброго всем времени суток! После обновления Битрикса до версии 21.400.300 при отправке ajax запроса получаю ошибку json_failure. Для отправки запроса используется метод BX.ajax.runComponentAction:

Javascript
1
2
3
4
5
6
7
8
9
10
11
e.preventDefault();
                BX.showWait();
                var form = $(this);
                var data = new FormData(this);
                var htmlContainerSelector = _this.params.htmlContainerSelector;
 
                var request = BX.ajax.runComponentAction('citfact:lk.company_page', 'changeCompanyInfo', {
                    mode: 'class',
                    data: data,
                    signedParameters: _this.params.signedParameters
                });

Подскажите в чём может быть дело?!??



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

30.09.2021, 17:44

2

1652 / 1074 / 219

Регистрация: 16.03.2008

Сообщений: 5,061

Записей в блоге: 2

30.09.2021, 20:46

2

Лучший ответ Сообщение было отмечено Jasta как решение

Решение

Так посмотрите в инструментах разработчика браузера что возвращается на запрос. Наверняка, если в .settings.php включите режим отладки — ошибка какая то выскочит.

Если компонент citfact:lk.company_page на поддержке — может есть смысл обратиться к разработчику. 100% дело в этом компоненте



0



975 / 498 / 101

Регистрация: 20.02.2016

Сообщений: 2,843

01.10.2021, 16:24

 [ТС]

3

Цитата
Сообщение от voral
Посмотреть сообщение

100% дело в этом компоненте

Да Вы были правы. Стал ковырять компонент и оказалось что дауны которые разрабатывали этот сайт до меня, отдавали с бека компонент целиком, чтобы потом перерисовать его через JS, но уже с крохотным сообщением об успехе. Удалил всю эту дичь и переписал по человечески. Спасибо за помощь))



0



При установке виртуальной машины Битрикс в качестве Push-and-Pull сервера по умолчанию используется модуль Nginx под названием Nginx-PushStreamModule. Этот подход считается устаревшим, поэтому в консоли Bitrix env есть возможность заменить его на NodeJS RTC service. Казалось бы нет ничего проще выбрать в консоли пункт 10 (Configure Push/RTC service), затем пункт 1 (Install/Update NodeJS RTC Service), дождаться выполнения фонового задания и начать пользоваться современным инструментом. Но к сожалению в некоторых случаях все проходит не так гладко. Когда я стал проводить описанные действия – выполнение команд завершилось ошибкой, а я получил неработающий портал клиента. Версия виртуальной машины, где произошла эта ошибка была 7.0.3.

Ошибка при настройке push and pull сервера

Причем «откатить» изменения через консоль не удалось, так как NodeJS RTC service не установился. Оказалось, что ключевая причина в том, что перестал запускаться Nginx. При попытке его запустить выдавалась следующая ошибка: nginx: [emerg] host not found in upstream “server1:8010”.

Nginx ошибка при запуске

Первым делом я, конечно, написал обращение в техподдержку Битрикса, в то же время стал искать решение проблемы самостоятельно. Потому что ответ приходится ждать довольно долго, а «оживить» портал хотелось побыстрее.

Поиск решения занял несколько часов, причем мне в первую очередь нужно было вернуть «все как было», а не искать причину ошибки.

Сначала я открыл главный файл конфигурации nginx (/etc/nginx/ nginx.conf). Дата его изменения была давнишняя, поэтому я решил, что причина неисправности не в нем. В этом файле есть подключение других конфигурационных файлов из папок /etc/nginx/bx/conf/, /etc/nginx/bx/settings/, а также /etc/nginx/bx/site_enabled/.

Зайдя в эти папки, я обнаружил, что в них есть файлы со «свежей» датой создания. Открыв параллельно соответствующие папки другой ВМ, где NodeJS RTC service не установлен, я обнаружил, что таких файлов там нет. Значит их можно и нужно удалить.

Сначала удаляем следующие файлы:

  • /etc/nginx/bx/settings/rtc-im_settings.conf
  • /etc/nginx/bx/site_enabled/rtc-server.conf

Далее удаляем файл:

  • /etc/nginx/bx/conf/rtc-im_subscrider.conf

НО на него в этой папке есть символическая ссылка. Ее тоже нужно удалить и создать снова, но указывать она должна уже на другой файл: push-im_subscrider.conf

Делается это командой

# ln –s /etc/nginx/bx/conf/im_subscrider.conf /etc/nginx/bx/conf/push-im_subscrider.conf

После выполнения этих действий, снова пытаемся запустить Nginx.

# service nginx restart или

# systemctl restart nginx.service

В моем случае он запустился без проблем и портал снова заработал.

Кстати, техподдержка Битрикса посоветовала переустановить виртуальную машину полностью, что меня совсем не устраивало.

Затем я обновил BitrixEnv до 7.3.4 и попробовал выполнить установку NodeJS RTC service снова. Обновление не помогло. Ситуация повторилась снова. Пришлось повторить все описанные выше действия еще раз.

Надеюсь, что когда вы будете читать эту статью, подобных проблем при настройке Push-and-Pull сервера в виртуальной машине Битрикс возникать не будет.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Bitlocker ошибка во время шифрования
  • Bitcomet disk boost service ошибка