[php에서 UTF-8, EUC-KR 인코딩 변경]

UTF-8을 EUC-KR로 변경
$str = iconv("UTF-8", "EUC-KR", $str);

EUC-KR을 UTF-8로 변경
$str = iconv("EUC-KR", "UTF-8", $str);


다른 서버에서 글 내용을 가져와 파싱하는 경우에 특히 많이 사용하게 된다.

상식적으로 알아둘 점: EUC-KR에서 한글은 2byte, UTF-8에서 한글은 3byte이다.

글자수 기준으로 substr() 함수를 이용하여 자를 때 참고해두자.


1. 필요 패키지 설치

yum install ImageMagick ImageMagick-devel

ImageMagick => ImageMagick – is a free software suite for the creation, modification and display of bitmap images.

ImageMagick-devel=> ImageMagick의 라이브러리 링크와 필요한 헤더파일이 포함되어있습니다.

2. 파일 다운로드 및 설치

최신 버전 다운로드 사이트 : http://pecl.php.net/package-stats.php 

다운로드 및 설치

cd /usr/local/src/

tar zxvf imagick-3.0.1.tgz

cd imagick-3.0.1

PHP설치경로/bin/phpize => 

./configure –with-php-config=PHP설치 경로/bin/php-config

php-config 실행시 아래와 같이 에러가 나오면

configure: error: Cannot locate header file MagickWand.h

이는 MagickWand.h 파일이 들어있는 디렉토리의 이름이 ImageMagick 가 아닐 경우 나온다.

 ln -s /usr/local/include/ImageMagick-6 /usr/local/include/ImageMagick (심볼릭 링크 처리)

make && make install

설치가 완료 되면 아래와 같이 파일의 위치가 표시가 됩니다.

PHP설치경로/lib/php/extensions/no-debug-zts-20090626/imagick.so

 

3. PHP.ini 수정 하여 모듈 적재

extension_dir=PHP설치경로/lib/php/extensions/no-debug-zts-20090626/

extension=imagick.so

 

4. 아파치 재시작 및 모듈 적재 확인

아파치를 재시작 후 

PHP설치경로/bin/php -m

Imagick가 목록에 있을 경우 정상 로드 되었습니다.

보다 자세한 내용 확인을 위해

PHP설치경로/bin/php -i | grep -i imagick 을 입력하여 자세한 모듈 정보를 불러 옵니다.

imagick

imagick module => enabled
imagick module version => 3.0.1
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator
imagick.locale_fix => 0 => 0
imagick.progress_monitor => 0 => 0

Imagick 모듈이 정상적으로 로드가 확인 되었습니다.


iconv -f utf-8 -t euc-kr convert.dat (저장안되고 화면만출력)
iconv -f utf-8 -t euc-kr convert.dat > convert2.dat



[iconv 사용법]

iconv -f <소스 포맷> -t <목적 포맷> <파일명>

예)
- cp949 으로 되어 있는 파일을 utf8 로 변환
iconv -f cp949 -t utf-8 source.txt > target.txt

지원하는 인코딩 목록을 보려면 -l 옵션을 넣는다.
iconv -l


dovecot은 POP3, IMAP등 메일을 전송받기 위한 서비스 데몬입니다.

해당 데몬을 세팅중에 다음과 같은 에러를 만나며 메일을 받을 수 없는 문제를 만났습니다.
[code]Feb  8 19:26:56 Tomeii dovecot: Dovecot v1.0.7 starting up
Feb  8 19:27:01 Tomeii dovecot: chdir(/home/users/eye) failed with uid 123: Permission denied
Feb  8 19:27:01 Tomeii dovecot: child 4170 (pop3) returned error 89[/code]
보안상 디렉토리 퍼미션을 많이 바꾸던것이 문제가 된것 같습니다.

* 위 로그가 발생하면 아웃룩등 메일클라이언트 프로그램에서 로그인이 안되는 문제가 발생합니다.

사용자 디렉토리의 모든 상위 디렉토리가 최소 711이상의 퍼미션을 가지고 있어야 합니다.
[code]# chmod 711 /home
# chmod 711 /home/users[/code]
와 같이 group과 other에 최소한 1(execute) 권한을 주면 해당 오류가 사라집니다.


리눅스 시스템을 운영하다 보면 어느순간 시스템의 시간이 한국 표준시와 맞지 않은 경우를 발견하게 된다.

이럴 때의 조치방법을 요약한다.

보통  rdate -s time.bora.net && hwclock -w 명령어를 실행하게 되면 시스템 시간과 CMOS 의 시간을

동기화 시키는 것인데 일단 위 명령어는 틀림이 없으나 위 방법을 실행해도 시간이 한국 표준시로 설정이

안되는 경우가 있다. 이런 경우는 시스템의 타임존이 아시아/서울 (한국 표준시) 로 지정되지 않았기 때문이다.

이를 해결하기 위해선 # cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime  명령어로 아시아/서울의

타임존을 시스템의 로컬타임으로 설정한다음에

# rdate -s time.bora.net && hwclock -w  명령을 수행해야 정상적으로 적용된다.

덮어씌울거냐고 물어볼땐 무조건 yes 하면 되며

작업 후에는 반드시 date 명령어로 정상적으로 시간이 설정되었는지를 확인해본다.


(참고)
# date (휴대폰을 꺼내 현재 시간과 날짜가 맞는지 확인)
# hwclock -w (현 시스템 시간을 BIOS 시간과 동기화 시킴.)
# hwclock -r (하드웨어 시간을 표시한다.)
# reboot (재부팅 이후 정상적으로 시간이 맞는지 필히 확인한다.)