아파치 오류 로그에 때로는 이상한 경고를 발생시키는 PHP 스크립트에 문제가 있습니다.
bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.utf8)
bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.utf8)
bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.utf8)
bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.utf8)
다음은이 경고를 생성하는 코드입니다. (gettext를 구성하는 데 사용됩니다).
$lang='fr_FR.utf8';
$filename = 'default';
putenv("LC_ALL=$lang");
setlocale(LC_ALL, $lang);
bindtextdomain($filename, './config/locale');
bind_textdomain_codeset($filename, "UTF-8");
textdomain($filename);
이상한 것은 경고가 체계적으로 나타나지 않는다는 것입니다. Apache를 다시 시작하면 몇 분 동안 나타나지 않습니다 (즉, 경고없이 수백 개의 요청을 처리 함). 그러면 점차적으로 나타나기 시작할 것입니다.
고맙습니다
setlocale
스레드로부터 안전하지 않습니다 (PHP 문맥에서 스레드 안전은 무엇을 의미합니까?. Zend Framework가 자체 Locale 시스템을 구현하는 이유입니다.