Mysql 5.5 한글 깨짐문제 해결하기 – UTF8

셋팅환경

CentOS 5.5 64Bit + Mysql 5.5.21

준비파일

없음

필수 라이브러리

없음

설명

/etc/my.cnf를 편집합니다. my.cnf 위치가 관리자 설정에 따라 다를 수 있습니다.

셋팅순서

my.cnf
Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# mysql 또는 root 계정으로 작업을 권장합니다.
vi /etc/my.cnf
# client 부분밑에 추가
[client]
default-character-set = utf8
# mysqld 부분밑에 추가
[mysqld]
init_connect = SET collation_connection = utf8_general_ci
init_connect = SET NAMES utf8
character-set-server = utf8
collation-server = utf8_general_ci
# mysqldump 부분밑에 추가
[mysqldump]
default-character-set = utf8
# mysql 부분밑에 추가
[mysql]
default-character-set = utf8
[저장후 나가기]
# Mysql 재시작
service mysqld restart 또는 /etc/init.d/mysqld restart
# UTF8 확인하기
# Mysql 접속
mysql -u root -p [엔터]
# 현재 캐릭터셋 확인
show variables like 'c%'; [엔터]
+--------------------------+-----------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/server/mysql/share/charsets/ |
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
| completion_type | NO_CHAIN |
| concurrent_insert | AUTO |
| connect_timeout | 10 |
+--------------------------+-----------------------------------------+
# 위와 같은 형태로 나오면 변경 완료

Linux + Apache + Apache Tomcat 연동

셋팅환경

CentOS 5.5 64Bit + Apache 2.2.22 + Apache Tomcat 6.0.35

준비파일

apache-tomcat-6.0.35.tar.gz | tomcat-connectors-1.2.35-src.tar.gz

필수 라이브러리

없음

설명

Apache가 설치되어 있어야 합니다. 설치참조 : Linux + Apache 2.2 Install

JAVA JDK가 설치되어 있어야 합니다.

셋팅순서

Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
적당한 곳에 위의 apache-tomcat-6.0.35.tar.gz tomcat-connectors-1.2.35-src.tar.gz 다운로드 받습니다.
# Tomcat 압축해제
tar xvfz apache-tomcat-6.0.35.tar.gz [엔터]
mv apache-tomcat-6.0.35 /usr/local/tomcat [엔터]
# Apache + Apache Tomcat 연동파일 압축해제
tar xvfz tomcat-connectors-1.2.35-src.tar.gz [엔터]
cd tomcat-connectors-1.2.35-src [엔터]
cd native [엔터]
./buildconf.sh [엔터]
# /usr/local/apache2 는 아파치 설치 경로를 입력
./configure --with-apxs=/usr/local/apache2/bin/apxs [엔터]
make && make install [엔터]
# 연동 관련 라이브러리 생성 확인
# 만약 아래 명령어를 실행했을 때 목록이 나타나면 정상적으로 생성완료.
ls /usr/local/apache2/modules/mod_jk.so [엔터]
# 연동 필수 파일 2개 생성
# 하단 코드를 참고.
/usr/local/apache2/conf/workers.properties
/usr/local/apache2/conf/uriworkermaps.properties
####################################################
# 하단 소스 생성후 계속 진행
####################################################
# Apache 환경설정
vi /usr/local/apache2/conf/httpd.conf [엔터]
# 105번째줄쯤에 삽입
LoadModule jk_module modules/mod_jk.so
# 446번째줄쯤에 삽입
<IfModule jk_module>
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel error
</IfModule>
# vhosts 활성 (453번째줄쯤에 수정)
(변경전) #Include conf/extra/httpd-vhosts.conf
(변경후) Include conf/extra/httpd-vhosts.conf
[저장후 나가기]
# Apache Tomcat 환경설정
vi /usr/local/tomcat/conf/server.xml [엔터]
# 128번째줄쯤부터 시작하는 HOST를 주석처리 하거나 삭제하고 아래코드 삽입
<Host name="localhost" appbase="webapps" unpackWARS="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context Path="" docBase="/usr/local/apache2/htdocs" debug="1" allowLinking="true" reloadable="true" />
</Host>
[저장후 나가기]
# Apache, Apache 재시작
/usr/local/tomcat/bin/catalina.sh stop [엔터]
service apachectl stop [엔터]
service apachectl start [엔터]
/usr/local/tomcat/bin/catalina.sh start [엔터]

workers.properties
Shell
1
2
3
4
5
6
7
8
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/java/jdk1.6.0_30
ps=/
worker.list=tomcat
worker.tomcat.port=8009
worker.tomcat.host=localhost
worker.tomcat.type=ajp13
worker.tomcat.lbfactor=1

uriworkermaps.properties
Shell
1
/*.jsp=tomcat

Linux + Apache 2.2 Install

셋팅환경

CentOS 5.5 64Bit + Apache 2.2.22

준비파일

httpd-2.2.22.tar.gz

필수 라이브러리

gcc gcc-c++ libtermcap-devel gdbm-devel zlib* libxml* freetype* libpng* libjpeg* iconv flex gmp ncurses-devel apr* pcre*

설명

yum으로 설치하시면 몸이 편합니다.

예) yum install gcc gcc-c++ libtermcap-devel gdbm-devel zlib* libxml* freetype* libpng* libjpeg* iconv flex gmp ncurses-devel apr* pcre*

위의 모든 라이브러리가 반드시 필요하지는 않습니다.

하지만 각종 에러를 보기싫으시면 그냥 전부 설치해주세요.

셋팅순서

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
적당한 곳에 위의 httpd-2.2.22.tar.gz 다운로드 받습니다.
# root 권한으로 접속하셔서 설치하시길 권장합니다.
# apache 압축풀기
tar xfvz httpd-2.2.22.tar.gz [엔터]
# 권한변경
chown root.root -R httpd-2.2.22 [엔터]
cd httpd-2.2.18 [엔터]
./configure --prefix=/usr/local/apache2 --with-mpm=worker --enable-mods-shared=all --enable-module=so --enable-module=rewrite --with-included-apr [엔터]
make && make install [엔터]
# 서비스 등록(부팅시 자동실행과 어느 경로에서든지 아파치를 제어할 수 있도록 설정)
cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/apachectl [엔터]
vi /etc/rc.d/init.d/apachectl [엔터]
# 3번째줄 쯤에 #<-를 포함한 아래 2줄을 삽입한다.
# chkconfig: - 92 92
# description: Apache Web Server Version 2.2.22
[저장 빠져나가기]
chkconfig --add apachectl [엔터]
chkconfig --level 2345 apachectl on [엔터]
# 아파치 실행
/usr/local/apache2/bin/apachectl start 또는 service apachectl start

에러 해결

httpd: Could not reliably determine the server’s fully qualified domain name

Apache
1
2
3
4
5
6
vi /usr/local/apache2/conf/httpd.conf
# 148번째줄 정도에
(변경전) #ServerName www.example.com:80
(변경후) ServerName localhost
[저장 후 빠져나가기]

Linux + root계정 원격 SSH접속 막기

셋팅환경

CentOS 5.5 64Bit

준비파일

없음

필수 라이브러리

없음

설명

보통 리눅스 서버를 구축하면 귀차니즘으로 인해 root로 접속하여 모든 작업을 진행합니다.

이러한 행동은 보안불감증(?)으로 볼 수 있으며, 상당히 위험하다고 볼 수 있습니다.

서버의 접근은 허용된 IP와 허용된 일반유저ID의 접근으로 선행되어야 합니다.

root계정으로의 직접 접근은 개인의 개발환경에서나 적합합니다.

고객를 상대로 사이트 개발에 앞서 서버 구축할 경우에는 반드시 root계정으로의 접근은 피하시길 바랍니다.

아래 내용은 root 권한으로의 원격 ssh 접근을 차단하는 방법을 기술하였습니다.

Shell
1
2
3
4
5
6
7
8
# 환경설정 파일 수정(root 권한으로 실행)
vi /etc/ssh/sshd_config
# 39번째줄 정도
(변경전) PermitRootLogin yes
(변경후) PermitRootLogin no
# SSH 서비스 재시작
service sshd restart

Linux + 특수문자 파일명 삭제하기

셋팅환경

CentOS 5.5 64Bit

준비파일

없음

필수 라이브러리

없음

설명

post-data=idx=1&name=abc 와 같이 특수문자가 포함되어 있는 파일명은 다음과 같이 삭제합니다.

예) rm post-data\=idx\=1\&name\=abc

특수문자 앞에 \를 삽입하면 삭제할 수 있습니다.

Go back to top