@karpo518

Как задать LC_ALL в Ubuntu для пользователя www-data?

Сделана куча всего. Локали прописаны вследующие файлы:

/root/.bashrc
/home/user1/.bashrc
/var/www/.bashrc
/etc/default/locale

Выполнен reboot сервера. Выполнена ещё куча команд:

sudo locale-gen "en_US.UTF-8"
sudo dpkg-reconfigure locales
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8


Единственное. Не пробовал прописать в /et/environment. Пишут, что это опасно.

Переменная требуется для запуска bash команд средствами PHP. Прописывать в каожом приложении с помощью php-функции setlocale не хочется принципиально. Хочу настроить один раз для всех пользователей.

Команда echo shell_exec('locale') возвращает:

LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=


Как исправить?
  • Вопрос задан
  • 1480 просмотров
Пригласить эксперта
Ответы на вопрос 1
@G_r_i_g_a
Вот тебе стандартное предупреждение:
Переменная LC_ALL переопределяет своим значением все LC_*-переменные, включая LANG, независимо от того, установлены они или нет.
Переменная LC_ALL — единственная из всех LC_-переменных, которую нельзя установить в /etc/locale.conf: она предназначена только в целях проверки при решении проблем

Но если ты все еще хочешь её задать, то пропиши её в /etc/environment: LC_ALL=
Ну и потом обнови переменные или же рестартани сервер. Только учти что переменная будет установлена для всех пользователей.
Кстати, проверил, оно и для одного пользователя работает. Ты, наверное, забыл export, пропиши в .bashrc: export LC_ALL=локаль
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы