0

아파치 오류 로그에 때로는 이상한 경고를 발생시키는 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를 다시 시작하면 몇 분 동안 나타나지 않습니다 (즉, 경고없이 수백 개의 요청을 처리 함). 그러면 점차적으로 나타나기 시작할 것입니다.

고맙습니다


  • 읽어 봤니? - RobIII
  • 예. 내 서버의 Apache가 프리 포크 모드에서 실행되고 있기 때문에 이것이 내게 적합하지 않다고 생각했습니다. - David

1 답변


0

setlocale스레드로부터 안전하지 않습니다 (PHP 문맥에서 스레드 안전은 무엇을 의미합니까?. Zend Framework가 자체 Locale 시스템을 구현하는 이유입니다.


  • 아파치가 프리 포크 모드로 실행 중일 때 이것이 문제가되지 않을 것이라고 생각 했습니까? - David

연결된 질문


관련된 질문

최근 질문