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 ответ
есть 2 варианта.
- Попросить добавить на хостинге локаль ru_RU.utf8
- Либо добавить вывод в /dev/null как указано.