Закрыть
Скидки в Webasyst 25–29 ноября 2021

cron ошибка setlocale: LC_ALL: cannot change locale (ru_RU)

Добрый день.

Помогите пожалуйста разобраться в ситуации:


Настроил CRON на сервере от netangels.ru:

/usr/bin/php /home/*****/site.ru/www/cli.php shop followup


Мне приходит на почту ошибка:

sh: warning: setlocale: LC_ALL: cannot change locale (ru_RU)


В хостинге ответили:

Некорректность либо в настройке webasyst, создающего исполняемый скрипт, либо в самом скрипте, если он пишется руками. Вместо ru_RU в скриптах рассылки Вам необходимо указать точное название нужной локали.

В настоящий момент на сервере установлены следующие локали:
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=POSIX
LC_TIME=POSIX
LC_COLLATE=C
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES=en_US.utf-8
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Таким образом, Вам нужно преобразовать вызов функции к следующему виду:
setlocale ( 'LC_ALL' , '<установленная локаль>' );

Либо Вы можете подавить вывод скрипта, как описано в нашей статье https://www.netangels.ru/support/hosting-howto/use-cron/, с помощью конструкции "1> /dev/null 2>&1"

Где в итоге это исправить?


1 ответ

  • 1
    Алексей Webasyst 17 февраля 2017 11:27 #

    есть 2 варианта.

    - Попросить добавить на хостинге локаль ru_RU.utf8
    - Либо добавить вывод в /dev/null как указано.

Добавить ответ

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