출처 : http://blog.daum.net/gujjy/114


tomcat 으로 mysql 접속시 인코딩이 깨어질 때 체크해야 할 것들.


1. 데이타베이스 및 테이블 생성 시 인코딩 적용

  CREATE DATABASE 디비명 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

  CREATE TABLE 테이블명(
    컬럼들~~~~
)ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='테이블 주석';


2. jdbc 데이터 소스 생성 시 인코딩 적용

  jdbc:mysql://서버주소:포트/디비명?useUnicod=true&characterEncoding=utf8


  &는 xml 에서는 &로 적어준다.


3. web.xml에 인코딩 필터 적용

<filter> 
<filter-name>encodingFilter</filter-name> 
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
<init-param> 
<param-name>encoding</param-name> 
<param-value>UTF-8</param-value> 
</init-param> 
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


4. Get 파라메터 한글 깨짐 적용

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="utf8" />


  URIEncoding을 적용하면 get으로 한글을 보낼때 깨지 않는다.




저작자 표시
신고

1. Apache 다운로드
  - http://apache.org/ 에 가서 아래의 왼쪽 위 HTTP Server를 찾아서 클릭.(헷갈리면 Ctrl+F로 검색해서 찾음)


  - Download를 클릭

 - 각자의 서버환경에 맞추어 다운로드. 필자는 윈도우2003 이므로 httpd-2.2.17-win32-x86-no_ssl.msi 파일을 다운받았다.
 - 클릭하여 계속 Next를 눌러주어 설치한다. 아파치를 시작하고 http://localhost 로 접속하여 화면이 뜬다면 제대로 설치된 것 이다.

2. PHP 설치
 - http://www.php.net/downloads.php 가서 ZIP형태로 된 PHP파일을 다운받는다. 따로 설치라 할건 없고 그냥 다운받아서 원하는곳에  압축을 풀어놓는 형태다. 현재날자 기준으로 5.3버전이 최신버전인데.. 필자는 아파치랑 연동이 안되서 구버전인 php-5.2.11-Win32.zip 파일을 찾아서 다운받았다.

3. MySQL 설치
  - http://www.mysql.com/downloads/mysql/ 에 가서 메뉴에서 Downloads를 클릭하고 왼쪽의 MySQL Community Server를 클릭한다.

  - 오른쪽 화면에 파일 목록이 보일것이다. 각자에 입맛에 맞게 다운하고 설치한다. root 비밀번호 셋팅하고 까먹지 마시길..

4. 연동 설정

  - 아파치폴더/conf/httpd.conf를 열어서 맨 밑줄에  아래코드를  삽입한다. 파일명을 제외한 앞쪽 경로는 각자의 환경에 맞게 셋팅하시길...
#-------------------------------------------------------------------------------------------------------------
LoadModule php5_module "C:/PHP/php5apache2_2.dll"             
AddType application/x-httpd-php .php .html
PHPIniDir "C:/PHP"

AddDefaultCharset UTF-8
#-------------------------------------------------------------------------------------------------------------
  
  - PHP폴더/php.ini-dist 파일을 복사하여 php.ini로 파일 이름을 수정하고 맽 밑줄에 다음을 추가하고 PHP폴더에서 libmysql.dll파일을 C:\windows\system32 폴더로 복사
#-------------------------------------------------------------------------------------------------------------
default_charset="utf-8"
#-------------------------------------------------------------------------------------------------------------

  - MySQL 설정.
    특별히 변경할 것은 없다. 다만 케릭터셋 변경이 필요하다면 MySQL폴더/my.ini 파일을 수정한다.
    default-character-set으로 되어 있는 부분을 찾아.. 변경/추가한다.
#-------------------------------------------------------------------------------------------------------------
  [mysql]
  default-character-set=utf8
  [mysqld]
  default-character-set=utf8
#-------------------------------------------------------------------------------------------------------------

5. 설정 확인
  - 파일을 하나 만들어서 열어본다. 아파치 홈폴더를 변경하지 않았을 경우 기본적으로 아파치폴더/htdocs가 잡히므로 거기에 만들면 된다.
#-------------------------------------------------------------------------------------------------------------
<?
phpinfo();
?>
#-------------------------------------------------------------------------------------------------------------
  위 파일을 웹브라우저에서 열어보면 php환경설정을 볼수 있다. 케릭터셋이나 디비연동등을 확인해본다.


설정 끝

저작자 표시
신고


두개의 서버가 있고 하나를 백업디비로 할때 사용했다.
미러링이라고 보면 된다. 양방향 동기화는 아니고 마스터서버에서 슬레이브서버로 복사한다는 개념(?)..
간단한 설정 방법을 남긴다.

♦ MySQL Replication 설정
Master Mysql 5.0.45 IP : xxx.xxx.xxx.xxx
Slave Mysql 5.0.45 IP : xxx.xxx.xxx.xxx
참고 : Mysql 버전이 서로 다를 경우, 높은 버전은 Slave만 가능하다.

♦ Master Server 설정
my.cnf 파일을 편집한다.
# vi /etc/my.cnf
-------------------------------
server-id = 1                          1로 셋팅한다.
log-bin=mysql-bin                      주석(#)처리가 되어 있다면 풀어준다
-------------------------------
위 속성은 중복 되면 안된다. 전체파일을 잘 살펴 보아야 한다.

mysql 접속후 슬레이브에서 접속할 계정을 만든다.
# mysql> GRANT REPLICATION SLAVE ON db명.* TO 계정아이디@'%' IDENTIFIED BY '비번';
(%대신 IP주소를 넣으면 그 IP로부터 접속하는 slave에 대해서만 접속을 허용하겠다는 의미)
# mysql>FLUSH TABLES WITH READ LOCK;
# mysql>show master status;
-----------------------------------------------------------------
   File                Postion          Binlog_Do_DB         Binlog_Ignore_DB
   mysql-bin.000003       98
-----------------------------------------------------------------
위 출력물은 컴퓨터마다 다를 것이다. 슬레이브 서버에 적용시킬때 쓰인다.

이제 마스터 서버의 db데이터를 덤프한다.
# mysqldump -u root -p db명 > 파일명.sql
# mysql>UNLOCK TABLES;

♦ Slave Server 설정
my.cnf 파일을 편집한다.
# vi /etc/my.cnf
---------------------------------
server-id = 2                            이줄이 없을 경우나 1로 셋팅 되어있을 경우나 모두 2로 셋팅
replicate-do-db='db명'            전체 디비를 설정할려면 이줄은 삭제, 한 개의 디비만 리플리케이션 시킬려면        디비명을 적는다. 2개 이상의 경우 다음줄부터 똑같이 적는다.
---------------------------------
마스터 서버에서 덤프한 파일을 이용하여 복구한다.
# mysql -u root -p db명 < 파일명.sql

# mysql>CHANGE MASTER TO
 ->MASTER_HOST='192.168.0.10',
 ->MASTER_USER='계정명',
 ->MASTER_PORT=3306,
 ->MASTER_PASSWORD='패스워드',
 ->MASTER_LOG_FILE='mysql-bin.000003', 마스터의 상태보기 명령에서 나온 파일명
 ->MASTER_LOG_POS=98;   마스터의 상태보기 명령에서 나온 포지션

# mysql> SHOW SLAVE STATUS\G;
♦ Master & Slave 설정확인
마스터 # mysql>SHOW PROCESSLIST\G;
슬레이브 # mysql>SHOW PROCESSLIST\G;

이후 직접 마스터서버에서 insert 또는 delete를 이용하여 테스트를 해본다.

♦ 필수 ♦
mysql-bin.00003 등 뒤부분의 숫자가 올라가면서 파일이 생성된다. 또한 마스터 서버에서 삽입, 삭제, 업데이트 되는 부분은 이 파일을 이용하여 슬레이브 서버에 동기화를 시킨다. 마스터 서버가 리스타트 될시 슬레이브 서버와 연결된 부분이 끊기게 된다.
이때는 마스터 서버에서 # mysql>show master status; 를 이용하여 파일명과 포지션을 획득하고
슬레이브 서버에서
# mysql> stop slave;          중지시키고
# mysql>CHANGE MASTER TO
 ->MASTER_HOST='192.168.0.10',
 ->MASTER_USER='계정명',
 ->MASTER_PORT=3306,
 ->MASTER_PASSWORD='패스워드',
 ->MASTER_LOG_FILE='mysql-bin.000003', 마스터의 상태보기 명령에서 나온 파일명
 ->MASTER_LOG_POS=98;   마스터의 상태보기 명령에서 나온 포지션
CHANGE 명령을 이용하여 파일과 포지션을 다시 셋팅한다.

# mysql> start slave;

 

저작자 표시
신고

첨 해봤던 서버셋팅.. 오래됐지만 문서로 남겨두기로 했다.

** 참조 링크
1. http://forum.falinux.com/zbxe/?mid=manual_centos 
 - 설치가 자세하게 잘 나와있다.
2. http://jmsource.tistory.com/33
 - SATA가 잡히지 않아 고생했다. 우분투는 설치가 잘 되던데.. CentOS는 설치화면에서 SATA DVD-ROM을 인식못해서
  한참을 헤매다가 찾았다. 이렇게 하면 설치는 된다.. 다만 리눅스 종료할때 자동으로 꺼지지 않는다. 수동으로 눌러줘야된다.
  뭐.. 서버 끌일은 크게 없으니

**  리눅스 설치
1. 리눅스 CentOS 5.3버전 DVD 한 장 버전으로 그래픽 모드로 설치
(SATA로 시디롬 인식 불능시 초기 설치시 linux all-generic-ide acpi=off irqpoll selinux_compat_net=1 치고 엔터)

2. 설치패키지 선택시 Desktop Gnome 를 체크 한다. 바로 밑부분에 지금 사용자 설정에 체크하고 다음.
   개발용 도구탭에서 필요한 부분 체크(DNS나 메일서버 SSH등) 하여 설치를 완료. 하드디스크 분할은 잘몰라서 패스했다

** Java JDK 1.5 설치
# 링크 : http://java.sun.com/products/archive/j2se/5.0_12/ 에서 JDK 5.0 Update 12를 다운로드클릭한다. 다음 페이지에서 Platform을 리눅스 Language를 Multi-language를 체크, I agree 체크 한 후 Continue하여 다음 페이지에서 나오는 두 개의 파일 중 rpm이 붙지 않은 파일을 다운로드
# 파일을 /usr/local/ 로 이동 시킨다.
# chmod 755 jdk-1_5_0_12-linux-i586.bin  하여 권한 수정.
# ./jdk-1_5_0_12-linux-i586.bin   실행하면 압축이 풀리면서 폴더가 생성된다.
# ln -s 생성된폴더명 java
심볼릭 링크를 걸어줌(classpath추가시 폴더이름이 길고 업데이트시 폴더이름이 바뀌면 수정해야 하므로 걸어줌)
# vi /etc/profile
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
환경변수를 추가한다. 추후 mysql커넥터 등 알아서 더 추가하시길.
# source /etc/profile 로 적용
# env 로 환경변수 확인

** Tomcat 설치
# 링크 : http://tomcat.apache.org/ 에서 Tomcat 5.5를 선택 Core에서 tar.gz버전을 다운받는다.
# tar zxvf 파일명.tar.gz 로 압축해제.
# mv 폴더명 /usr/local/tomcat5   로 이동시키면서 기존의 폴더명을 tomcat5로 변경
# 문서에 첨부된 tomcat파일을 /etc/rc.d/init.d/ 으로 이동 후 chmod 755 /etc/rc.d/init.d/tomcat 로 권한 변경
  첨부된 파일은 톰켓을 서비스에 등록시키기 위한 파일임.
# chkconfig --add tomcat 서비스로 등록한다.
# service tomcat start  서비스 시작.
--톰켓 콘솔창 출력을 위해서는 톰켓폴더/logs/ 폴더에서 tail -f catalina.out을 치면 된다.
--또한 톰캣폴더/common/lib 의 servlet-api.jar 파일 및 mysql커넥터를 jdk폴더/jre/lib/ext 에 복사.

** MySql 설치
# yum -y install mysql mysql-server mysql-connector-odbc mysql-devel
# mysql_install_db && chown -R mysql:mysql /var/lib/mysql     기본 mysql DB인스톨.소유권한 변경
# /etc/rc.d/init.d/mysqld start
# mysqladmin -u root password 123456      : 사용자와 패스워드 설정
# chkconfig --add mysqld  이하 서비스 등록
# chkconfig --level 2345 mysqld on
# chmod 755 /etc/rc.d/init.d/mysqld
# service mysqld restart
--추가적으로 mysql 인코딩셋을 euckr로 변경시
-- vi /etc/my.cnf에서
-------------------------------------------------
[client]
...
default-character-set = euckr

[mysqld]
...
default-character-set=euckr
init_connect = SET collation_connection = euckr_korean_ci
init_connect = SET NAMES euckr
charater-set-server = euckr
collation-server = euckr_korean_ci

[mysqldump]
...
default-character-set=euckr

[mysql]
default-character-set=euckr
----------------------------------------------------
-- euckr과 euckr_korean_ci 로 변경한다. 항목이 없을 시 utf로 된 것 모든 것 변경
-- 확인 mysql에 접속된 상태에서  show variables like 'c%' euckr 로 변경되어 있으면 완료.
  (character_set_system은 기본셋팅따라감. utf8)

** FTP(vsftpd) 설치
# rpm 검색하여 기존버전 설치되어 있을 경우 소프트웨어추가/삭제에서 제거 후 설치한다.
# wget http://pkg.tini4u.net/ftp/vsftpd/i386/vsftpd-2.0.5-10.el5_kor.i386.rpm 으로 다운
# rpm -ivh 파일명  으로 설치
# /etc/vsftpd/vsftpd.conf 로 모든  ftp설정 가능. 어느 개발자분이 기본적인 셋팅을 잘 해놓으셨다.
# /etc/init.d/vsftpd start  로 서비스 시작

** 방화벽
/etc/sysconfig/iptables 에서 방화벽 포트 설정
/sbin/service iptables restart 재시작
/sbin/service iptables status 적용현황보기

♦ IP설정 /etc/sysconfig/network-scripts

저작자 표시
신고

'IT분야 > Linux' 카테고리의 다른 글

[Linux]unison을 이용한 양방향 동기화  (0) 2010.10.29
[Linux] CentOS 5.3 Server 셋팅  (0) 2010.08.25