2007년 10월 13일 토요일날
집근처인 건국대학교 새천년기념관에 갑니다 :)

이유는 JCO 오픈소스 컨퍼런스에 갑니다.
집근처라 좋고 30분 거리라 좋고 ㅎ (그런데 건대는 그닥, 고등학교때 술쳐먹었던 곳으로만 -_-;; - 위험 발언이군요-_-;;)

중간고사와 OS, DB, Network과제의 압박이 있지만 가야겠습니다 ㅋ (노트북 들고 강연 안듣고 과제하면 저라 생각을 *-_-*)
이번에는 꼭 디카를 챙겨갈텝니다.
혹시 같이 가실 분 있으면 MSN sungdh86@hotmail.com으로 메일 주시거나 아님 덧글 남겨주세요(비밀글 남겨도 좋고, 연략처 남기는 것은 필수 :)

ex) 졸업하시고 현업에 종사하시는 Daum, NHN 댕기는 선배님하들 만날수 있는 기회인가? ㅋ



'컴퓨터 > Linux' 카테고리의 다른 글

Virtual PC 2007에서 Ubuntu 7.10설치하는 방법  (1) 2008.02.15
CentOS 5.1를 설치하기로 함.  (1) 2008.02.05
Happy 10th Birthday GNOME!  (0) 2007.08.22
Apache Tomcat 설치기  (3) 2007.08.09
컴퓨터가 츤데레였어!  (9) 2007.08.03
Buy me a coffeeBuy me a coffee
이번에 컴퓨터공학과 3학년 2학기에 새로 생긴 전공과목인 네트워크 프로그래밍이란 과목을 수강하다가 Process를 이용한 웹서버 구현하는 과제를 하였습니다. 생각보단 어렵지는 안더군요. 예전에 Thread를 이용한 간단한 웹서버 구현한 것이있어서 Process로 바꾸는 데에는 금방 했습니다. (참고로 열혈강의 TCP/IP 소켓 프로그래밍이란 책을 참고했습니다.)

열혈강의 TCP/IP 소켓 프로그래밍
윤성우 지음 / 이한디지털리(프리렉)
나의 점수 : ★★★★★

처음 본 TCP/IP 소켓프로그래밍 책입니다.
소켓프로그래밍 공부하는데 서점에서 무슨 책으로 공부할지 고민을 하다가 이 책이 초보자들에게 괜찮은 듯하고 거기에 무료강의까지 제공해서 선택했습니다.
이 책을 쓰신 윤성우님은 열혈강의 C, 열혈강의 C++란 책으로 아주 유명하신 분이죠. (전 열혈강의 C, 열혈강의 C++를 보질 않았습니다. 그렇게 유명한 책이고 동기들이 다 본 책인데 ㅡㅡ;)
이 책은 다른 책보다 Windows와 Linux 두군데에서 어떻게 소켓프로그래밍 할지 설명이 잘 되어있습니다. 다른 책들을 보면 Linux에서만 돌아가거나 등등.
OS를 가리지 않고 C언어에서 소켓프로그래밍을 설명한 책이라서 학과 커리큘럼상에서 Linux밖에 배우지 않는 것을 커버하는 것이 좋다고 생각한다.
그러나 단점은 JAVA에서의 소켓프로그래밍은 알아서 공부해야겠죠?
이 책을 일주일만에 소스 다 치면서 400페이지 이상 읽었습니다. 정말 책이 술술 읽힌 것 같네요. 윤성우님의 명서라 할수 있습니다. 그러니까 열혈강의 C와 열혈강의 C++도 잘 쓰여졌을것이라 보네요.



그래서 과제를 하다가 World Wide Web을 오랬동안 쓴 저 조차도, HTTP Protocol에 대해선 전혀 모르고 써왔구나를 느꼈습니다.
(저는 하이텔부터 쓴 사람이라서^^, 국민학교 3학년때 아부지 회사였던 테헤란로 K**란 회사에 가서 인터넷이라는 것을 알게 되었다지요. 그때 인터넷 접속할때에는 DOS에서 win를 쳐서 Windows 3.1를 실행시키고, Winsock이란 프로그램을 띄우고 나서 전화선 모뎀으로 접속해야했던 과거 ^^ - 오덕의 기운이 초등학교때부터 시작 ㅡㅡ;)

현재 우리나라에서는 HTTP Protocol가 어떻게 정의되었는지에 대한 책들을 찾기 힘들더군요, 그래서 학교 도서관에서 HTTP The Definitive Guide란 책을 빌려서 보고 있습니다 :D

책 내용이 2002년 9월달에 나왔지만, 변하는 내용은 아니니까. 책을 보면서 당연하게 느낀 것들도 어떻게 정의되었는지를 알게 되었을때 재미가 있네요. 공부가 재미있다는 것이 이런건가? -_-;;

Process를 이용한 웹서버 과제를 하고 나서 HTTP를 사용해서 서버 정보를 가져와 파일로 저장하는 프로그램도 짜봤습니다만, 자주 쓰는 웹서비스도 이해를 안하고 썼다는 것에 충격.


1. HTTP Protocol이란?
HTTP는 Hyper-Text Transfer Protocol의 약자로 WWW(World Wide Web)에서 사용되는 Protocol이다. HTTP/1.0은 RFC1945, HTTP/1.1은 RFC2068, RFC2616에 명시되어 있습니다.
일반적으로 포트번호는 80을 사용합니다.
실제로 쓰는 웹서버들은 포트번호를 명시해주어야 합니다. 예를 들어 네이버 주소는 원칙적으로 쓰면 http://www.naver.com:80/ 이렇게 포트번호 80를 명시해주면서 접속을 해야한다만 http://www.naver.com/ 이런식으로 표현하는 것도 포트번호가 80을 쓴다는 것을 암묵적으로 알기때문입니다.

자세한 내용은 RFC 문서를 읽으시는 것이 좋을 듯 합니다. 블로그에 포스팅하긴 엄청나게 방대한 양이라서요^^
HTTP/1.0 RFC1945 : rfc1945.txt.pdf
HTTP/1.1 RFC2068 : rfc2068.txt.pdf
HTTP/1.1 RFC2616 : rfc2616.txt.pdf

2. 웹서버를 이해하기
웹서버란? HTTP Protocol을 기반으로 해서 웹 페이지가 들어있는 파일을 클라이언트에게 전송해주는 프로그램이라고 보면 됩니다.
지금, 이 글을 보는 여러분들은 인터넷 브라우저인 FireFox나 Internet Explorer를 사용하고 계실 것입니다. 이 인터넷 브라우저는 클라이언트 소켓프로그램에 해당됩니다. 임의의 사이트에 접속을 하려고 할때, 브라우저도 내부적으로 TCP/IP소켓을 생성하기 때문입니다. 다만 인터넷 브라우저가 지니는 특징은, 서버가 전송해주는 HTML문으로 이루어진 문서를 그대로 보여주지 않고 HTML문법에 맞게 변환해 준다는 것이죠.

3. 간단한 HTTP 실행과정
HTTP는 클라이언트와 서버가 일정하고 예측 가능한 방식으로 정보를 교환하고 상호작용을 할수 있도록 허용하는 Method와 header의 집합을 정의하고 있습니다.
웹에서 볼수 있는 각 XHTML파일은 웹과 관련된 URL(Universal Resource Locator)을 가지고 있습니다. URL은 사용자가 접속하고자 하는 리소스(대부분 웹 페이지)에 브라이저가 접속할 수 있도록 하는 정보를 포함하고 있습니다.
예를 들면, http://www.dal.kr/data/index.html

http://는 웹 브라우저가 HTTP를 이용해 리소스를 요청해야한다는 것을 나타냅니다. 중간부분의 www.dal.kr은 서버 호스트 이름입니다. 호스트 이름은 리소스가 위치에 있는 컴퓨터의 이름인데, 이 컴퓨터가 보통 리소스를 간직하고 유지하기 때문에 호스트(Host)라고 합니다.
요청된 리소스 이름 /data/index.html (HTML문서)는 URL의 나머지 부분입니다. URL에서 이 부분은 리소스 이름(index.html)과 경로 (/data)를 확실해 구분해줍니다. 이 경로(path)는 웹 서버 파일 시스템에 있는 실제 Directory를 나타냅니다. 그렇지만 보안상의 이유로 경로는 대부분 가상 디렉토리(Virtual Directory)를 나타냅니다. 이 경우에, 서버는 해당 경로를 서버의 실제 위치로 해석하기 때문에 자원의 정확한 위치를 숨길수 있습니다. (Apache에서 VirtualHost인가 설정하면 해당 경로를 해석해서 표현합니다^^)

주어진 URL에 대해서 브라우저가 웹 페이지를 표현하기 위한 HTTP 트랜젝현을 어떻게 수행될까요?
아래 올려진 그림에서 잘 보여줍니다.
http://www.dal.kr/data/index.html를 접속한다고 생각합니다.
브라우저는 서버로 HTTP요청을 보냅니다. 그 요청은 이렇게 나타냅니다.
GET/data/index.html HTTP/1.1
host : www.dal.kr

GET이라는 단어는 리소스를 검색하고자 하는 클라이언트를 나타내는 HTTP Method입니다. 나머지 요청에서는 리소스의 이름 및 경로 그리고 프로토콜 이름과 버전 번호(HTTP/1.1)를 제공합니다.
(실험한 사이트들이 HTTP/1.0 을 써서 난감 ㅡㅡ;)

클라이언트가 서버에게 메시지를 주면 서버는 클라이언트에 요청 결과를 보내줍니다.
서버는 우선 한 줄로된 HTTP 버전과 그 뒤에 트랜잭션의 상태를 나타내는 숫자 코드와 구(phase)로 응답합니다.
HTTP/1.1 200 OK는 성공, HTTP/1.1 501 Method Not Implemented 는 요청을 처리하는데 필요한 기능이 구현되지 않았음, HTTP/1.1 404 Not found 는 특정한 위치에서 서버 자원을 찾을 수 없다는 응답을 알려줍니다.

아래는 제가 HTTP정보를 얻는 프로그램을 작성해서 돌려본 결과입니다. 제가 가는 사이트 마다 HTTP/1.1 지원하는 사이트가 없군요 ㅡㅡ; 다만 제가 일하고 싶은 오픈마루스튜디오는 HTTP/1.1를 지원하고 있었습니다 ㅠㅠ
host : www.dal.kr, path : /data/index.html
Get /data/index.html HTTP/1.0

HTTP/1.1 501 Method Not Implemented
Date: Sun, 23 Sep 2007 15:01:44 GMT
Server: Apache
Allow: GET, HEAD, OPTIONS, TRACE
Connection: close
Content-Type: text/html; charset=iso-8859-1

host : www.http-guide.com, path : /index.html
Get /index.html HTTP/1.0

HTTP/1.1 501 Method Not Implemented
Date: Sun, 23 Sep 2007 15:10:04 GMT
Server: Apache/1.3.37 Ben-SSL/1.57 (Unix) PHP/4.4.2 FrontPage/5.0.2.2624 DAV/1.0.3
Allow: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK, TRACE
Connection: close
Content-Type: text/html; charset=iso-8859-1

host : www.openmaru.com, path : /index.php
Get /index.php HTTP/1.0

HTTP/1.1 200 OK
Date: Sun, 23 Sep 2007 15:24:31 GMT
Server: Apache/2.2.3 (Unix) PHP/5.1.6 mod_python/3.2.10 Python/2.4.3 DAV/2
X-Powered-By: PHP/5.1.6
Set-Cookie: TSSESSION=2039b9c23de52f6d7b8713126cf3b9b4; path=/; domain=openid.or.kr
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=utf-8
서버는 클라이언트에게 보내는 데이터에 관한 정보를 제공하는 하나 또는 그 이상의 HTTP헤더를 보냅니다. 위에 제가 HTTP정보를 얻는 프로그램을 작성해서 돌려본 결과를 보면 그 예를 볼수 있습니다.
Content-Type: text/html; charset=iso-8859-1
Content-Type: text/html; charset=utf-8
Content-Type헤더의 정보는 MIME(Multipurpose Internet Mail Extension) 타입의 컨텐츠를 확인합니다. 서버에서 보내진 각 데이터 타입은 MIME타입을 가지며 이 MINE타입을 통해 브라우저는 받은 데이터를 어떻게 처리할 것인지를 결정합니다.

헤더 다음의 빈줄은 서버가 HTTP 헤더 전공을 끝냈다는 것을 클라이언트에게 알려주는 것입니다. 그리고 나서 서버는 요청된 리소스의 내용들을 보냅니다. 리소스 전송이 완료되면 연결이 종료됩니다. 클라이언트 측 브라우저는 받은 문서를 해석하고 결과를 화면에 출력또는 전달해줍니다.
아래 그림은 웹 서버랑 브라우저랑 어떻게 연결하는지 보여주는 그림입니다 :D
책내용은 HOW TO C++ PROGRAMMING Forth Edition - Deitel 형제가 쓴 책 내용의 일부분 참조했습니다.

아 생각보다 방대한 양들이군요. HTTP/1.1로 구현한 웹서버는 기능을 많이 뺀 것이라 간단하게 프로그래밍 했다만, 제대로 구현하려면 몇줄을 작성해야할까 걱정이 되군요 ㅡㅡㅋ
이왕에 MFC로 윈도우즈에도 써볼까? -_-;;(그러다 밤샐래!)

자세한 내용은 위에 있는 RFC문서를 참조하시기 바랍니다. 영어 해석이 어렵다면 네이버 지식즐을 참조하시길 :D

'컴퓨터 > Web' 카테고리의 다른 글

나만의 도메인으로 gmail를 쓰게 되었음.  (0) 2008.02.01
IE7로 업그레이드하다.  (0) 2008.01.26
sungdh86님의 노트  (1) 2007.09.01
여태까지 이런 기능이 없었다니  (6) 2007.08.01
PHP 이메일 체크 함수  (2) 2007.01.22
Buy me a coffeeBuy me a coffee
이 로고는 geekOS의 로고입니다 -_-;;

http://geekos.sourceforge.net 에서 자세한 내용을 알수 있습니다. :D



What is it?
GeekOS is a tiny operating system kernel for x86 PCs. Its main purpose is to serve as a simple but realistic example ofan OS kernel running on real hardware. (Actually, most of the development is done on theBochs emulator.)

위의 영어설명대로 GeekOS는 아주 가벼운 OS Kernel입니다.
아, 이걸 실제로 쓴다고 조교님이 매뉴얼을 주었는데 매뉴얼에 간단한 설명만 있어서 당황했습니다. 파일명이 hackingOS라는 것도 그렇지만 그 영어인데도 외계어 일색 @.@ 근데 설명이 짤막짤막해서 이걸 참고해서 어떻게 코딩할지가 궁금하네요.
아래는 GeekOS 0.3.0의 매뉴얼 입니다.
hacking.pdf

GeekOS매뉴얼을 보는데 이걸 한학기에 다 코딩을 해본다는 것을 생각만해도 한학기는 월화수목금금금 과제할것 같다는 @.@
리눅스 커널을 대충 분석했으니까 GeekOS 과제는 코드 소스 참고해서 과제를 해야하는지 궁금하더군요
대충 영어로 된 매뉴얼을 훑어보고있다만, 장님이 코끼리 만지는 듯하게 이번 학기 어떻게 공부할지가 감이 안잡혀요 ㅠㅠ
왜이리 겁이 많아지나?

'컴퓨터' 카테고리의 다른 글

Ruby on rails 설치  (0) 2008.05.10
SUN사가 MySQL을 인수하고 Oracle이 BEA를 인수하다.  (2) 2008.01.18
Google神은 언제 어디서나 있다.  (5) 2007.07.31
Visual Studio 2005 설치  (4) 2007.07.29
Segmentation Falut와의 전쟁  (5) 2007.05.26
Buy me a coffeeBuy me a coffee
저에게 메일로 MySQL User Conference Korea -2007가 왔었는데, 정말 듣고 싶은 것을 발표한다네요.
메일을 보고 나서 가고 싶다는 생각이 굴뚝같았습니다.
듣고 싶은 행사 있어서 시간대를 보니 OTL
아래는 메일 원문이네요.
<행사명> MySQL User Conference Korea -2007
<장소> Central City Convention Hall (체리홀)- 지하철 3&7호선 고속버스터미널역

<Agenda> Opening  13:00 ~ 13:15 LDS CEO
         Session 1 13:15 ~ 14:00 Overview of MySQL HA Solutions
                                 (Jimmy Guerrero-Senior Product Manager)
         Session 2 14:00 ~ 14:45 Web 2.0 and Emerging Web Technologies
                                 (Brian Acker-director of Architecture)
         Break    14:45 ~ 15:05     Break Time
         Session 3 15:05 ~ 15:50 Migration from Oracle to MySQL (Jimmy Guerrero)
         Session 4 15:50 ~ 16:35 MySQL 5.1 in depth (Brian Acker)
         Break     16:35 ~16:45    Break Time
         Session 5 16:45 ~ 17:30 MySQL Enterprise (Daniel Saito-Sales Engineering)
         Closing   17:30 ~17:50 LDS

http://www.linuxdata.co.kr/mysql_event/index.html

<초대글>
안녕하십니까? 리눅스데이타시스템(LinuxdataSystem:LDS)입니다.
저희 리눅스데이타시스템은 이번에 MySQL AB사와 한국 에이전시 계약을 맺고 2007년 9월 14일 한국에서 처음으로 MySQL User Conference Korea-2007을 개최합니다.

"MySQL과 함께 도약하십시오"라는 테마를 가지고 MySQL Community 와 개발자 및 DBA를 위한 최근의 Database 이슈 및 팁 또한 Enterprise 고객사의 성공사례 및 Web2.0 Sites과 같은 기술적인 정보에 대해서 논의 합니다. 또한, 이번 컨퍼런스에서는 현재 가장 큰 이슈인 MySQL HA(High Availablity)솔루션 및 오라클에서 MySQL로의 마이그레이션에 대한 Session 있을 것입니다.
.
현존하는 데이터베이스와 잘 융합되면서 동시에 훨씬 덜 복잡한 솔루션을 제공하는 MySQL의 가치를 컨퍼런스에 오셔서 직접 확인하십시오. 오후 1:00분부터 오후 5:50까지 5개의 세션을 MySQL사의 엔지니어가 진행할 것입니다.

MySQL과 오픈소스에 관심 있는 모든 분들의 많은 관심과 참여 바랍니다.
바로 지금 사전등록 하십시오.


아악, 시간대가 대략 겹칩에 난감 -ㅅ-
OS, 오토마타, DB수업 시간과 겹치는 이런 좋은 시간대에 ㅠㅠ

아, 수업 쨀수도 없을 노릇이고 ㅠㅠ (외계어로 수업하는 OS 수업 놓치면 내용 따라가기 힘들어서 -_ㅠ)

정말 가고 싶은 것들이 주말에 안하고 평일날 하면 정말 ㅠㅠ (수요일 빼놓곤 다 오후에도 수업있음 -ㅅ-)
하악하악, 가고 싶어 ;ㅁ;
Buy me a coffeeBuy me a coffee

스프링노트의 주요 기능들을 살펴볼까요?


screen.jpg


 



  1. 새 페이지를 만들 수 있습니다.


  2. 데스크탑의 문서(*.doc, *.hwp, *.htm, *.txt)를 가져올 수 있습니다.

  3. 페이지끼리 링크를 엮을 수 있습니다. 글을 쓰면서  Ctrl  +  Space  를 누르면 더욱 편리합니다.

  4. 물음표 버튼이나,  F2  키를 눌러, 편집기에서 사용할 수 있는 모든 단축키들을 살펴보세요.


  5. 페이지를 함께 쓸 친구들을 초대할 수 있습니다.

  6. 자주 찾는 페이지에 책갈피를 끼워보세요!

  7. 글이 많이 쌓이면 하위페이지로 관리해보세요.


 


 


스프링노트는 어떤 서비스인가요?




스프링노트는 무엇인가요?


스프링노트라는 이름이 탄생하게된 배경은?


주요기능이나 특징들은 어떤 것이 있나요?


스프링노트는 누구를 위한, 무엇을 하는데 쓰는 물건인가요?


서비스가 중간에 망하면 어떻게 하나요?



 


 


스프링노트를 어떻게 이용하나요?




마우스 쓰기 귀찮은 유저입니다. 뭐든 키보드로 다 된다는 단축키, 그것이 궁금합니다.


페이지간의 링크는 어떻게 걸 수 있나요?


자동으로 번호가 매겨집니다! 1. 2. 3. 자동 서식 사용하기 / 기본 서식으로 돌아가기


HWP, DOC, TXT, HTML, 브라우저 북마크를 가져올 수 있습니다


자주 찾는 페이지에 책갈피를 끼워보세요- 책갈피 활용법!


빨리 페이지를 찾으려면? 페이지 바로가기


백업 - 페이지 통째로 내려받기


브라우저 북마크를 스프링노트에 담으려면?



함께 쓸 수 있다면서요? - 페이지 권한설정 (함께 쓰기/공유하기)



 


이 글은 스프링노트에서 작성되었습니다.

'컴퓨터 > Web' 카테고리의 다른 글

IE7로 업그레이드하다.  (0) 2008.01.26
HTTP/1.1 Protocol이란?  (0) 2007.09.24
여태까지 이런 기능이 없었다니  (6) 2007.08.01
PHP 이메일 체크 함수  (2) 2007.01.22
인증코드 부분을 다시 만들어야 할까?  (6) 2007.01.16
Buy me a coffeeBuy me a coffee
오늘 UBUNTU 사이트(http://www.ubuntu.com)갔더니 이런 메세지가 나오더군요


Linux에 그래픽 인터페이스를 구현하게 했던 GNOME Project에 참여하신 모든 분께 영광을^^
GNOME Project가 만들어진지 10주년이 되었다는 것에 놀랐습니다.
저는 GNOME쓴지 이제 2년되어가군요 ㅎ

'컴퓨터 > Linux' 카테고리의 다른 글

CentOS 5.1를 설치하기로 함.  (1) 2008.02.05
2007 JCO 오픈소스 컨퍼런스에 갑니다  (2) 2007.10.07
Apache Tomcat 설치기  (3) 2007.08.09
컴퓨터가 츤데레였어!  (9) 2007.08.03
Ubuntu CD 도착 :D  (4) 2007.07.27
Buy me a coffeeBuy me a coffee


문서화 작업의 일환으로 포스팅을 하게 되었습니다.
JSP를 쓰기 위해서 많이 쓰는 Tomcat을 모르는 이들이 워낙에 많은 관계로 -_-;;

Tomcat을 깔기전에 Sun사에서 나온 JAVA package가 있는지 알아봅니다. 혹시나 java를 치면 gij로 나오면 gcc-java package가 깔렸으므로 지우는 것이 속편합니다.

JAVA JDK6을 다운로드 받아서 설치합니다. 설치할때에 /usr/local/src 에 설치를 하는 것이 속편합니다.
# chmod +x jdk-6u2-linux-i586-rpm.bin
# ./jdk-6u2-linux-i586-rpm.bin
이렇게 하면 rpm 파일이 나옵니다. rpm파일이 나오면 설치를 합니다. 설치하면 /usr/java란 경로가 생깁니다.
rpm -Uvh jdk-6u2-linux-i586.rpm
설치를 하면 환경변수를 설정합니다.
# vi /etc/profile
실행한 후에 파일 끝에 아래 내용을 추가한 후 종료합니다.
export JAVA_HOME="/usr/local/java"
export CATALINA_HOME="/usr/local/tomcat"
export PATH=$PATH
추가를 했으면 환경설정파일을 다시 불러들립니다.
# source /etc/profile

JAVA Package가 설치가 되었으면 Tomcat을 설치를 해야할 것입니다.
일단 이 사이트에 찾아 갑니다.
Apache Tomcat [링크]

전 여기서 Tomcat 6.X 를 다운로드 받았습니다.
다운로드 받을때에는 KAIST 서버가 좀 속도가 빠를 것이라고 체감을 하더군요. 그래서 KAIST서버로 체크 :D

서버에 이렇게 다운로드 받습니다. (다운로드 받을 폴더는 /usr/local/src )
# wget http://ftp.kaist.ac.kr/pub/Apache/tomcat/tomcat-6/v6.0.13/bin/apache-tomcat-6.0.13.tar.gz

다운로드를 받았으면 압축을 풀어줘야 합니다.
tar xvfz apache-tomcat-6.0.13.tar.gz

압축이 풀어주면 Tomcat 설치를 다한 것이라고 생각합니다.
Tomcat를 설치했으면 /usr/local에 심볼릭 링크를 걸어줍니다.
[root@pcrc local]# ln -s /usr/local/src/apache-tomcat-6.0.13 tomcat
심볼릭 링크를 걸어주면 /usr/local에 tomcat이라는 폴더가 생겼음을 알게 될 것입니다. :D

Tomcat은 다운로드 받아서 압축만 풀면 설치가 완료된 것이다. 따로 설치를 위한 설정은 필요없다.

/usr/local/tomcat/conf에서 tomcat 설정을 한다.
기본설정은 다 되어 있으므로 따로 설정할 필요 없다면
/usr/local/tomcat/bin에 가서 startup.sh를 통해 Tomcat을 구동한다.

Tomcat을 정상적으로 구동하면 http://pcrc.hongik.ac.kr:8080 으로 접속해본다.
아래그림은 접속한 결과이다.
이런 화면이 나오면 설치가 잘 되었다는 것이다.

설치가 끝난 뒤 할 일은 서버를 부팅할 때 tomcat을 자동으로 시작하도록 설정하는 것입니다.
부팅시 자동으로 실행하기 위해 스크립트를 직접 작성해야 합니다.
웹 서핑 결과 다음의 것이 가장 흔했습니다.

다음 스크립트를 /etc/rc.d/init.d/ 폴더에 tomcat이라는 이름으로 작성했습니다.

#!/bin/sh
#
#Startup script for Tomcat, the Apache Servlet Engine
#
# chkconfig: - 85 15
# description: Start Tomcat
#
# processname: tomcat
#
# Source function library.
. /etc/rc.d/init.d/functions
export JAVA_HOME=/usr/local/java
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
# See how we were called.
case "$1" in
  start)
  echo -n "Starting tomcat: "
  daemon $CATALINA_HOME/bin/catalina.sh start
  touch /var/lock/subsys/tomcat
  echo
  ;;
  stop)
  echo -n "Shutting down tomcat: "
  daemon $CATALINA_HOME/bin/catalina.sh stop
  rm -f /var/lock/subsys/tomcat
  echo
  ;;
  restart)
  $0 stop
  sleep 2
  $0 start
  ;;
  *)
  echo "Usage: $0 {start|stop|restart}"
  exit 1
esac
exit 0

위에서 굵은 줄 두 부분만 이전에 설치한 java와 tomcat 홈 디렉토리로 변경해주면 됩니다.

스크립트를 작성한 다음에 service에 등록합니다.
cd /etc/rc.d/init.d/
chmod 755 tomcat
chkconfig --add tomcat
chkconfig --level 3 tomcat on
chkconfig --level 4 tomcat on
chkconfig --level 5 tomcat on

부팅 레빌 3, 4, 5번 일 때 가동 되도록 설정했습니다.

'컴퓨터 > Linux' 카테고리의 다른 글

2007 JCO 오픈소스 컨퍼런스에 갑니다  (2) 2007.10.07
Happy 10th Birthday GNOME!  (0) 2007.08.22
컴퓨터가 츤데레였어!  (9) 2007.08.03
Ubuntu CD 도착 :D  (4) 2007.07.27
GNOME 지우기  (3) 2007.07.17
Buy me a coffeeBuy me a coffee
내가 서버관리하는 서버에 MySQL DB복구시키는데 euc-kr와 latin1, UTF-8이 혼재되어서 복구하는데 죽는줄 알았다 ㅠㅠ

이번에 작업한것 다음 서버관리자에게 편하게 하기 위해서 UTF-8로 싹다 바꿀까 고민중이다.
UTF-8로 바꿀려면 모든 사용자들의 문자셋을 UTF-8로 바꿔야하는 귀차니즘도 있고 등등

그래도 남의 자료를 건드릴수도 없고 -_-;; 아 고민된다.

저번 글 : [꼬인 DB를 복구 완료 및 셋팅중.] 에 달린 댓글입니다.
daybreaker님이나 cypher님처럼 UTF-8이 이제는 대세같긴해도 아직도 EUC-KR를 쓸려는 사람도 있어서 OTL

아, 대세를 따라서 피를 보더라도 UTF-8로 대동단결이 살길이라고 생각하고 옮겨버릴까?

Buy me a coffeeBuy me a coffee
제가 맡고 있는 웹서버의 DB가 꼬여서 한글을 제대로 보여주지 못한 것을 해결하였습니다.
이 짓 한다고 거의 이틀을 잡아먹은 듯 하군요. 이제야 해결방법을 찾았으니, 다음 서버운영자에게 운영을 매끄럽게 하기 위해서 문서화 작업을 해야할듯 하군요.

Linux 서버를 다시 셋팅할때에는 MySQL자료를 백업을 받고 셋팅을 하여야 합니다.
서버에 있는 MySQL자료를 전부 백업 받는 방법은 이렇게 합니다.
# mysqldump -u root -p --all-databases > backup.sql
(backup.sql은 백업할 파일의 예를 듦)

백업 받은 자료에 내용을 확인합니다. 그런데 한글이 깨진다면 대책이 없을 것이죠?

mysql의 인코딩 설정이 서버마다 다르기 때문에 dump 할때 한글이 깨지는 문제가 생긴다고 하더군요. 그리고 dump가 안된다고 에러가 난다면 --force를 때려 넣으시야 함.
dump 했을때 한글이 깨지는 경우
# mysqldump -u root -p --all-databases --force --default-character-set=latin1 > backup.sql

이렇게 해서야 겨우 dump 백업을 가까스로 마쳤습니다. 이거때문에 하루는 버렸습니다.ㅠㅠ

참고자료 : dump할때 한글 깨짐 방지
(원문을 트래백할려고 해도 트래백이 안되군요, 그래서 링크 걸었습니다.

백업받은 파일을 vi로 엽니다. 여기서는 다 latin1로 설정되어 있어서 다른 DB에 올릴경우 당근 한글 깨지고 홈페이지 복구를 못시킵니다.
이거 문자 인코딩이 latin1이라 되어있어서 vi로 latin1을 euckr로 치환을 하고 나서 저장합니다.
그러면 복구 할때 문자코드가 euckr로 되어서 백업을 쉽게 할수 있죠.

dump로 백업받은 파일들은 이렇게 복구를 합니다.
mysql -u root -p --force --default-character-set=euckr < backup.sql

이렇게 하면 DB복구 완료 :D 이렇게 간단한것 알아내려고 밤을 샜습니다. 이건 애니를 볼수 있는, 게임을 할수 있는 시간을 빼았겨서 까악 ㅠㅠ

(※ 다음에는 서버 운영할시 일주일에 한번은 복구 스크립트넣고 재부팅 시켜서 하드디스크 상태를 봐야할듯 합니다. 서버가 하드디스크 고장에 맛가도 DB자료는 다행이도 항상 잘 남겨져 있어서 다행 ㅠㅠ)

다시 MySQL를 5로 깔았다. dump한 DB자료를 다시 넣으니까 한글이 제대로 들어간다. 휴
이번에 설정을 다시 제대로 해서 다행. 이번에 학과 서버관리자님께서 학과 홈페이지 서버를 업그레이드 하면서 LAMP를 Wow Linux & Apache 1.3 & Mysql3 & PHP 4에서 Fedora Core 7 & Apache 2.2 & MySQL5 & PHP 5로 버전 업을 시키는 것을 보면서 나도 따라갈려고 하다가 MySQL때문에 머리 아파 미치는 줄 알았다. (DB가 꼬여서 복구시키는데 3일 걸렸다.)
(나는 명색이 컴퓨터공학과 홈페이지 관리자-_-;; 컴퓨터공학과 서버관리자는 아님)


현재는 UTF-8와 EUC-KR이라는 문자코드때문에 골머리를 앓고 있는 과도기 상태입니다.
P.C.R.C.서버도 대세를 따라 UTF-8로 변경을 할까 골머리를 앓고 있군요.
Buy me a coffeeBuy me a coffee
이번에 서버를 다시 구축하게 되었는데 MySQL를 다시 깔게 되었다.
MySQL를 다시 깔려는데 실수로 설치중에 원하지 않는 MySQL5가 깔리게 되었다. 원래는 MySQL 4.1로 깔려고 만반의 준비를 했더니 원.
MySQL 5를 지우고 MySQL4.1로 깔았더니 Version이 안맞다고 짜증을 내기 시작.
그래서 다시 MySQL 5를 설치하였다. 결과는
한글 파일이 다 깨진다 ㅠㅠ "ㄴㅇ라먼오렂ㅂ더기ㅏㅂ저ㅣㅏㅁㄴ어리ㅏㅁㅇㄴ럼이낢ㄴㅇ"같은 식
억지로 UTF-8를 euckr로 고쳐도 깨진다. ㅠㅠ


그래서 전체 백업을 받기로 시작하였다. MySQL5에서는 UTF-8을 쓰니가 명시를 안하면 UTF-8로 저장되더군요 ㅠㅠ
# mysqldump -u root -p --all-databases > backup.sql


그래서 EUC-KR라고 문자셋을 명시하고 백업을 받기로 하였습니다.
# mysqldump -u root -p --all-databases --default-character-set=euckr > backup.sql


그런데 EUC-KR로도 백업을 받아도 문자들이 다 깨졌습니다 -_-;++
그래서 구글링한 결과
mysql의 인코딩 설정이 서버마다 다르기 때문에 dump 할때 한글이 깨지는 문제가 생긴다고 하더군요.
dump 했을때 한글이 깨지는 경우
# mysqldump -u root -p --all-databases --default-character-set=latin1 > backup.sql

이렇게 해서야 겨우 dump 백업을 가까스로 마쳤습니다. 이거때문에 하루는 버렸습니다.ㅠㅠ

참고자료 : dump할때 한글 깨짐 방지

'컴퓨터 > DB' 카테고리의 다른 글

DB 문자셋을 통일 시켜버릴까?  (1) 2007.08.06
꼬인 DB를 복구 완료 및 셋팅중.  (2) 2007.08.05
학과 서버 DB 정리  (4) 2007.07.27
Windows에서 Oracle 설치중  (5) 2007.07.13
PHP와 Oracle 연동하기  (1) 2006.02.07
Buy me a coffeeBuy me a coffee

+ Recent posts