개발자의 팩션골드의 지식베이스 입니다.

회사에서 이것때문에 정말 고생했던 정보입니다.^^

[문제점]
서버 이동 후, 웹페이지에서 한글이 깨지고, OCI 연결 옵션에서 인코딩을 넣어주면, 정상으로 나올 경우
* 단, 이 방법은 DB에는 정상적인 인코딩으로 데이터가 들어가 있는 경우이다. 데이터가 깨져서 IMP 를 한 경우에는, 
  DB 언어를 재 설정 혹은, 데이터 변환이 필요하다. 

[원인]
이는 DB에는 정상적으로 데이터가 import되었지만, NLS_LANG이 US7ASCII 혹은 NULL 값으로 되어있는 경우
한글을 읽을 수 없기 때문이다. (자세한 내용은 아래의 참조 사이트들을 참조하라. 노력하지 않는자 쓸모없다.ㅋㅋ)

[해결]
1. 아파치 stop

2. 시스템에 NLS_LANG 설정 
export NLS_LANG=KOREAN_KOREA.KO16MSWIN949
=> /etc/profile 에 위의 내용을 추가하면 자동으로 적용 시킬수 있다.

3. 아파치 재실행

여기서 제일 중요한 내용은 
아파치를 실행하는 user의 NLS_LANG 값을 지정해줘야된다는 것이다.

그 이유는 NLS_LANG이 적용되는 순서가 
SESSION > CLIENT > SERVER 
이기 때문이다.



[참조사이트들]
http://www.oracle.com/technology/global/kr/pub/columns/oracle_lns_1.html

Comment +0

SEO가 중요해짐에 따라서 URL의 필터링의 일환으로 mod-rewrite 기능을 추가하는 서버가 많아진것 같습니다.
그런데, apache의 mod-rewrite기능을 사용하기 위해서 apache전체를 새로 설치하는 분들이 있는 것 같아서,
rewrite모듈만 설치하는 방법에 대해 설명하겠습니다.

*apache 1.3.33버전 사용
  1. 아파치 다운로드 및 압축해제
    apache 파일을 다운
    # gzip -d -c apache_1.3.33.tar.gz | tar xvf -
  2. mod_rewrite 파일 컴파일
    # cd 압축해제디렉토리/apache_1.3.33/src/apache_1.3.33
    # /usr/local/apache/bin/apxs -c -I/usr/include/gdbm mod_rewrite.c
    # gcc -shared -o mod_rewrite.so mod_rewrite.o -lgdbm
  3. 파일 COPY 및 권한 변경
    # /usr/local/apache/bin/apxs -i mod_rewrite.so
  4. httpd.conf 파일 수정 (# vim /usr/local/apache/conf/httpd.conf)
    - 아래의 내용 추가
    LoadModule rewrite_module     libexec/mod_rewrite.so

    - 해당서버의 VirtualHost에 아래의 값 입력
    RewriteEngine On
    RewriteRule ^/link([^/]*).html$ /rewrite.php?link=$1 [L]

    [입력예]
    <VirtualHost *:80>
        DocumentRoot /var/www/html
        ServerName test.stylegold.com
        RewriteEngine On
        RewriteRule ^/link([^/]*).html$ /rewrite.php?link=$1 [L]
    </VirtualHost>
  5. 아파치 재구동

Comment +0