Algumas coisas variadas:
-
Esqueça sobre
/etc/environment
- a Debian mudou para usando/etc/default/locale
em Etch (4.0). -
O ponto de
/etc/default/locale
é fazer com que algumas variáveis de ambiente apareçam em um processo que inicie a sessão de login de um usuário.Agora existem várias maneiras de entrar em um sistema Debian; para citar alguns:
- Por meio de consoles virtuais - as telas textuais que apresentam o prompt
Login:
que você normalmente vê em um sistema sem o sistema X Window ou ao pressionar Ctrl - Alt - F1 ao trabalhar em um Xplay. - O "gerenciador de exibição" do Via X Window - essa coisa gráfica que permite ao usuário fornecer suas credenciais de autenticação e, em seguida, inicia o servidor X Window executando algum tipo de ambiente de área de trabalho para eles.
- Via SSH.
(Pode haver outros, mas isso está além do ponto.)
O que importa aqui é que a criação da sessão do usuário em sistemas baseados em Linux normalmente passa pela chamada camada PAM , que tem sua configuração em
/etc/pam
. Agora se você fizer$ grep -r locale /etc/pam.d
você verá que o arquivo
/etc/default/locale
está sendo lido em alguns lugares.O que eu estou levando você, é que para realmente "ver" as configurações de localidade alteradas, você tem que criar outra sessão de login - não importa como você faz isso. Digamos, faça logon em outro console virtual ou saia da sua sessão de desktop X e faça login novamente.
- Por meio de consoles virtuais - as telas textuais que apresentam o prompt
-
Como
/etc/default/locale
apenas define um monte de variáveis de ambiente, elas podem ser substituídas.O que eu estou levando você, se isso supor que você faça login em um console virtual; no final, seu shell de login é executado e mostra seu prompt. Mas quando o shell é iniciado, ele lê seus scripts de inicialização. Por exemplo,
bash
, quando executado como um shell de login, lê~/.bash_profile
se existir ou/etc/bash_profile
se o primeiro falhar. Seu local~/.bash_profile
pode conter algo comoexport LANG=en_US
… e viola - você tem suas configurações de ambiente substituídas.
Non-login shells também lêem scrits de inicialização (
bash
reads~/.bashrc
) e esses scripts também podem alterar as variáveis de ambiente.Então, por favor, verifique se você não tem overriddes em qualquer coisa que inicie sua sessão. Observe que é difícil obter ponteiros mais precisos, porque há muitas maneiras de obter uma sessão de trabalho em um sistema Debian, e a maneira como ela está sendo configurada depende de seu tipo.
-
Se a interação do seu código PHP com o backend do seu banco de dados depende da localidade ativa que o processo do PHP vê, seu projeto está seriamente danificado e você deve se concentrar em consertá-lo em vez do local. Caso contrário, isso vai te morder no pescoço, mais cedo ou mais tarde.
Todo o conceito de configurações de localidade existe somente para o software se comunicar com o usuário - de uma maneira natural a grupos específicos de usuários com diferentes preferências culturais etc. Isso certamente não inclui interação com banco de dados servidores. Ou seja, as configurações de localidade podem (e devem) ser usadas quando você analisa o que seu usuário digitou, digamos, um formulário da Web, mas quando você fornece esses dados a um back-end de banco de dados, os dados já devem estar normalizados - no seu caso < em> tem que ser números de ponto flutuante, não suas representações de string. E use consultas SQL parametrizadas, se aplicável e possível.