heowc / programming-study

개발 스킬, 언어, 설계에 대한 공유 저장소
https://heowc.dev/programming-study/repo/
53 stars 5 forks source link

[docker] centos7 setlocale #89

Closed heowc closed 6 years ago

heowc commented 6 years ago
export LC_ALL=ko_KR.utf8
# Error Log
bash: warning: setlocale: LC_ALL: cannot change locale (ko_KR.utf8): No such file or directory
heowc commented 6 years ago

https://qiita.com/YuukiMiyoshi/items/f389ea366060537b5cd9

heowc commented 6 years ago
localedef -i ko_KR -f UTF-8 ko_KR
heowc commented 6 years ago

docker에서는 이미지 최적화를 위해 OS 포함되는 locale 데이터를 일부만 포함 시켜놓은 듯 하다. Centos의 경우는 다음과 같다.

locale -a
# 결과
C
POSIX
en_US.utf8

이것이 무엇이 되냐하면 php에서 i18n을 지원하기 위해 gettext()setlocale()를 사용한다. 이때, 지원하지 않는 locale은 정상적으로 찾지 못한다. 그러기 위해서 해당 locale을 가져와야 한다.

사전 조건으로 다음 라이브러리가 추가되어야 한다.

yum install -y glibc-common glibc

그러면 localedef 명령어를 실행하여 해결할 수 있다.

localedef -i ko_KR -f UTF-8 ko_KR.utf8