django용 아파치+modssgi배치 후 중국어 난자 해결 방법

주로django의 공식 문서를 참고했습니다.https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/modwsgi/
문제의 원인은 자신이python 관리자를 통해pyrunserver 0.0.0.0:8082 이런 방식으로 프로젝트를 시작하면 중국어가 어지럽지 않지만 건물주 자신도 아리운에 사이트를 배치했다.django+apache+mod 를 통해ssgi+ubuntu 같은 환경에서 설정된 경우 중국어 부호화 오류가 발생합니다.
몇 달 동안 이 문제를 해결하지 못했다.
오늘 프로젝트에 중국어 파일을 추가하여 업로드하려고 했는데 결과적으로 이런 상황에 부딪혔다. 로컬 서버는 되고 아리운 서버는 안 된다. 그래서 이 문제를 반드시 해치워야 한다고 마음을 모았다.다음은 해결 방법을 무상으로 바칩니다.
 
If you get a UnicodeEncodeError¶
If you’re taking advantage of the internationalization features of Django (see Internationalization and localization) and you intend to allow users to upload files, you must ensure that the environment used to start Apache is configured to accept non-ASCII file names. If your environment is not correctly configured, you will trigger UnicodeEncodeErrorexceptions when calling functions like the ones in os.path on filenames that contain non-ASCII characters.
To avoid these problems, the environment used to start Apache should contain settings analogous to the following:
export LANG='en_US.UTF-8'
export LC_ALL='en_US.UTF-8'

Consult the documentation for your operating system for the appropriate syntax and location to put these configuration items; /etc/apache2/envvars is a common location on Unix platforms. Once you have added these statements to your environment, restart Apache.
즉,
/etc/apache2/envvars에 추가:
export LANG='en_US.UTF-8'
export LC_ALL='en_US.UTF-8'

추가 후 아파치2 서비스 재시작 명령 실행하기
sudo service apache2 restart
또한django가 중국어 이름이 있는 파일을 업로드하여 유니코드 엔코드 에로르를 잘못 보고한 문제도 해결해 드리겠습니다.
그러나 올라온 파일에 [Errno 13] Permission denied의 오류가 발생했습니다. 그것은 배치된 사이트 프로젝트 디렉터리에 쓰기 권한을 주지 않았기 때문입니다.
해결 방법: 다음 명령을 실행하여 검색을 사이트 프로젝트 디렉터리로 바꾸면 됩니다.
sudo chmod g+w -R search/
sudo chgrp www-data -R search/
주의: - R 을 빠뜨리지 마십시오. 이것은 귀속 부여 쓰기 권한입니다. 그렇지 않으면 여전히 잘못 보고합니다. 빠뜨리지 마십시오./
 
몇 달 동안 각종 자료, 문서를 찾았더니 이 두 가지 중요한 문제를 해결했다. 천도임금이 부지런하다!

좋은 웹페이지 즐겨찾기