레이블이 Etc...인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Etc...인 게시물을 표시합니다. 모든 게시물 표시

2009년 1월 9일 금요일

LAMP(Linux, Apache, PHP, Mysql) 설정법


우선 APM (Apache, PHP5, Mysql)이 3가지가 필요 합니다.
흔히들 LAPM이라고 하죠,ㅎ 리눅스 아파치 php mysql

  
$sudo apt-get install apache2                Apache 설치

   $sudo apt-get install libapache2-mod-auth-mysql        mysql 인증 모듈

   $sudo apt-get install mysql-server mysql-client         MySQL 설치
    MYSQL은 설치 후 자동으로 실행 됩니다.^-^

   $sudo apt-get install php5-common php5 libapache2-mod-php5      PHP5 설치

   $sudo apt-get install php5-mysql          MySQL과 php5를 연동하기 위한 모듈

   $sudo /etc/init.d/apache2 restart          아파치 웹서버를 재시작

APM 설치는 끝났습니다.ㅎ 이로써 LAPM환경을 구축 완료

아파치의 기본 경로는 /var/www 로 잡힙니다.^^
이 안에 index.html을 만든다면 되겠죠?ㅎ

html에 보시면 한글이 깨져서 나오는데 이 부분은 직접 인코딩을 바꿔주시거나 아니면 아파치 설정에 들어가셔서
    $sudo gedit /etc/apache2/apache2.conf  

마지막 부분에 AddDefaultCharset utf-8
를 추가합니다

그러면 한글 홈페이지도 인코딩 완료~

아참~ 매번 실행 시킬 때마다 아파치를 직접 켜시기 귀찬으신 분이라면 ~
세션메뉴를 선택해서~ 명령어 추가를 해주시면 됩니다~
sudo /etc/init.d/apache2 start를 넣어주시면 되겠네요~ㅎ
그럼 부팅 할 때 마다 알아서 아파치 써버가 열립니다~^^ㅋ

2009년 1월 6일 화요일

Xshell Tutorial


본 Tutorial에서는 Telnet/Rlogin 또는 SSH 세션을 생성하는 방법과 Linux/Unix 호스트에 접속하기 위한 방법을 설명합니다. Telnet 세션은 매우 간단하지만 SSH 세션은 서버에 연결하기 전에 사용자 키를 서버에 등록해야 할 필요가 있을 수 있습니다. 만약 사용자 키 등록이 필요하다면 공개키 사용자 인증 을 참조하십시오.
세션 만들기
원격 호스트에 연결하기
문제 해결

Telnet, Rlogin 및 SSH 프로토콜 세션을 생성할 수 있습니다.
  1. [파일] 메뉴에서, [새로 만들기]를 선택합니다. 새 세션 등록 정보 대화 상자가 나타납니다.
  2. [이름] 상자에 세션 이름을 입력합니다.
  3. [연결 방법] 리스트에서 적절한 프로토콜을 선택합니다.
  4. [호스트] 상자에 서버의 호스트 이름 또는 IP 주소를 입력합니다.
  5. [포트 번호] 상자에 원격 서버에 의해 사용되는 포트 번호를 입력합니다.
  6. [사용자 인증] 분류에서 [사용자 이름] 상자에 서버의 사용자 계정을 입력합니다.
    참고: SSH 프로토콜에서 사용자 이름이 없는 경우, 서버에 연결 시 사용자 이름을 묻는 대화 상자가 나타납니다.
  7. [확인]을 선택합니다.
Telnet, Rlogin 또는 SSH 세션이 생성되어 있다면, 이제 원격 호스트에 접속할 수 있습니다. 만약 생성된 세션이 없다면,
세션 만들기 섹션을 참조하십시오.
  1. [파일] 메뉴에서, [열기]를 선택합니다.
  2. 세션 리스트 중에서, 연결할 세션을 선택하고 연결 버튼을 클릭하면 SSH 사용자 인증 대화 상자가 나타납니다.
  3. 비밀번호 인증을 시도하시려면, [비밀번호] 상자에 비밀번호를 입력한 후 [확인]을 선택합니다.
  4. 공개키 인증을 시도하시려면, 먼저 리스트에서 사용자 키를 선택합니다. 선택된 사용자 키의 암호를 [암호] 상자에 입력한 후 [확인]을 선택합니다.
    참고: 만약 사용자 키가 없다면, 공개키 사용자 인증 섹션을 참고하십시오.
  5. Keyboard Interactive 인증을 시도하시려면, [확인] 버튼을 선택한 후 그 뒤에 질문 되는 물음들에 답하십시오.
지금까지 Xshell을 통해 원격 호스트에 접속을 시도했습니다. 만약 연결 중 문제가 있었다면, 문제 해결 섹션을 참조하십시오.
호스트 연결에 실패한 후 다음과 같은 에러 메시지가 나오는 경우가 있습니다.

"Could not connect to 'hostname': Unknown host."

호스트 이름이 올바른지 확인하십시오. 호스트 이름 대신 IP 주소를 입력해야 할 수도 있습니다.

"Could not connect to 'hostname' (port 22): Connection failed."

호스트가 준비되었는지 확인하십시오. 또한 포트 번호가 서버가 사용하는 번호인지 확인해 보십시오

2008년 4월 23일 수요일

Multi-tier

l         TIER

일반적으로 tier란 일련의 비슷한 객체가 나열된 상태에서, 열 또는 계층을 의미한다. 컴퓨터 프로그래밍에서, 프로그램의 일부가 여러 계층에 나뉘어 존재할 수 있으며, 그 계층 또한 네트웍 상의 서로 다른 컴퓨터에 위치할 수 있다. 바로 이러한 프로그램을 Multi-tier Programming이라 한다.

Multi-tier Program은 보통 '클라이언트', '애플리케이션서버', '데이터베이스서버'의 3-tier 이상으로 활용되어 진다. 이렇게 만들어지는 다계층 프로그램은 비즈니스 로직의 대부분을 Middle-tier가 되는 애플리케이션 서버 측에 부여함으로써 사용자측 프로그램을 가볍게 만들 수 있으며 서비스 규모에 따라서 여러대의 서버에 애플리케이션의 작업을 분산시켜 로드 밸런싱으로 인한 성능향상및 서버 장애에 대한 백업 시스템의 구축이 가능하다

 

l         2-tier

▶ 자바애플릿이나 어플리케이션이 JDBC를 이용해서 DBMS의 데이타베이스에 직접접근

▶ 가장 대표적인 클라이언트/서버 구조

▶ 프로그래밍이 간단하다는 장점

▶ 보안, 로드 밸런싱, 확장성 (오브젝트 재사용) 등의 문제점

▶ 2-tier 디자인이 적합한 경우

1. 애플리케이션이 하나의 데이타베이스만을 사용

2. 데이타베이스 엔진이 하나의 CPU에서 동작

3. 데이타베이스가 계속 거의 같은 크기로 유지

4. 사용자 기반이 같은 크기로 유지

5. 요구가 확정되어 변화 가능성이 거의 혹은 아예 없는 경우

6. 애플리케이션을 종료한 후에도 최소한의 지속성을 요구

 

사용자 삽입 이미지

l         3-tier

 ▶ 자바 어플리케이션이나 애플릿이 DBMS를 직접 접근하는 것이 아니라 중간에 있는 미들웨어(미들티어)를 거쳐 데이타베이스에 접근하는 것

▶ 데이타베이스와의 연동 부분을 분리시킴으로써 Presentation layer가 데이터 저장 방법에 신경을 쓰지 않아도 됨.

▶ 클라이언트는 단지 미들티어를 참조

▶ 미들티어 서버는 DBMS와 같이 특정한 작업만 수행하는 최종 서버와 통신을 하여 결과를 얻은 후 클라이언트에게 결과를 전달

▶ 2-tier 모델보다 안정적이고 유연하며 보안이 강화

1.  tier-1 : 사용자 인터페이스를 담당하는 클라이언트

2.  tier-2 : HTTP나 코바를 지원하는 응용처리 서버

3.  tier-3 : DBMS와 같은 사용자가 최종적으로 원하는 기능을 수행할 서버

 

사용자 삽입 이미지

l         3-tier application : 3계층 애플리케이션

 

3 계층 애플리케이션이란 3개의 주요 부분으로 구성되어 있는 응용프로그램으로서, 각각은 네트웍 상의 서로 다른 장소에 분산되어 있다. 여기서 3개의 주요부분이란 다음과 같다. 

ü         워크스테이션, 또는 외양 인터페이스

ü         비즈니스 로직

ü         데이터베이스와 그것을 관리하기 위한 관련 프로그램

 

전형적인 3 계층 애플리케이션에서, 프로그램 사용자의 워크스테이션은 GUI를 제공하는 프로그램과, 특정 프로그램에 맞는 입력 양식이나 인터랙티브 윈도우 등을 가지고 있다 (워크스테이션 사용자를 위한 일부 독특한 데이터는 사용자의 하드디스크에도 함께 보관된다).

 

비즈니스 로직은 근거리통신망 서버 또는 다른 공유된 컴퓨터 상에 위치한다. 비즈니스 로직은 워크스테이션으로부터의 클라이언트 요청에 대해 마치 서버처럼 행동한다. 그것은 차례로 어떤 데이터가 필요한지를 결정하고, 메인프레임 컴퓨터 상에 위치하고 있을 세 번째 계층의 프로그램에 대해서는 마치 클라이언트처럼 행동한다.

 

세 번째 계층은 데이터베이스와 그것에 액세스해서 읽거나 쓰는 것을 관리하는 프로그램을 포함한다. 애플리케이션의 조직은 이것보다 더욱 복잡해질 수 있지만, 3 계층 관점은 대규모 프로그램에서 일부분에 관해 생각하기에 편리한 방법이다.

 

3 계층 애플리케이션은 클라이언트/서버 컴퓨팅 모델을 사용한다. 3 계층에서, 각 부분은 각기 다른 팀의 프로그래머들에 의해 각기 다른 언어를 사용하여 동시에 개발될 수 있다. 어떤 한 계층의 프로그램은 다른 계층에 영향을 주지 않고도 변경되거나 위치가 달라질 수 있기 때문에, 3 계층 모델은 새로운 요구나 기회가 생길 때마다 애플리케이션을 지속적으로 진화시켜야하는 기업이나 소프트웨어 패키지 개발자들이 이에 쉽게 대처할 수 있게 해준다. 기존의 애플리케이션들은 영구적으로 또는 일시적으로 계속 유지될 수 있으며, 하나의 컴포넌트로서 새로운 계층 내에 캡슐화될 수도 있다.

 

3 계층 애플리케이션 아키텍처는 분산 객체지향 프로그래밍과 사상이 일치한다.


사용자 삽입 이미지


Web Server , Middle Ware , Data Base 
Þ  3tier

 

l         웹서버의 예 :  IIS,  Apache,  Enterprise Server등

 

l         Middle Ware

 

미들웨어는 서로다른 커뮤니케이션 프로토콜, 시스템 아키텍처, 운영체제, 데이타베이스와 다양한 애플리케이션 서비스를 지원하기 위해서 네트웍을 따라 하드웨어에 독립적으로 연결하여 주는 소프트웨어를 의미한다. 즉 클라이언트/서버를 물리적으로 연결하여 주는것이 아닌 애플리케이션 내에서 논리적으로 연결을 의미한다.

 

미들웨어의 목표는 "Any-to-Any Operability"로서 파일 교환 및 공유, 트랜잭션, RPC(Remote Procedure Call)등의 다양한 방법을 사용하여 애플리케이션 모듈간 호환성을 가지고 운영되도록 도와준다. 결론적으로 미들웨어는 애플리케이션 프로그램이 어떤 정보시스템 환경에서도 작동할 수 있도록 도와준다.

미들웨어 배경 S/W 전략 수립시 미들웨어 제품의 시스템 적용범위를 이해하는것은 중요하다. 적용범위는 어떻게 변화하고 있는가. 미들웨어의 초기 제품은 커뮤니케니션 소프트웨어이다. 대표적인 제품으로는 인터솔브의 시큐링크와 Software AG의 Entire Broker등이 있으며 이제품들은 이기종간의 통신을 위한 제품이다. 과거의 커뮤니케이션 적용에서 현재는 미들웨어의 수행 환경이 애플리케이션 서비스를 포함하기 때문에 적용범위는 훨씬 넓어지고 있다. 애플리케이션 서비스는 트랜잭션을 모니터하고, SQL을 최적화, 라우팅, 데이타베이스 리플리케이션등.. 다양한 기능을 지원하여야 하는데 제품의 추세가 이러한 기능들을 통합하여 지원하고 특정벤더에 의존하기보다는 벤더들이 서로 기술을 호환하는 개방형 구조로 작년부터 나가고 있다.

 

미들웨어 구성상 분류 S/W 페키지화 전략수립시 꼭 3Tier 환경에서 애플리케이션을 개발하여야 할것인가? 미들웨어를 정의 할때 2Tier, 3Tier에 의한 아키택처 분류와 적용방법에 따른 분류로 구분할수 있다. 일반적으로 아키택처상 2Tier의 클라이언트/서버 환경은 RDB에 적합하고, 3Tier는 미들웨어 환경에 적합하다. 아키택처상 분류보다는 어느부분에 적용하였느냐의 적용상 분류가 보다 적합하며 현재 미들웨어 환경은 멀티티어(Multi-Tier)환경이라는 말이 더 적합하며 2Tier 환경에서도 미들웨어를 구성할 수 있다. 예를들면 클라언트/서버 환경에서 메세지를 커뮤니케이션하는 RPC를 클라이언트와 서버에 동시에 인스톨하여 사용할수 있고 이경우 시스템은 2Tier 미들웨어이다. 그러나 미들웨어의 일반적인 구성은 클라이언트와 서버 사이에 중간 서버를 두어 트래픽을 처리 할수 있도록 하였는데 중간 서버의 사용용도에 따라 3Tier도 될수 있고 4Tier도 될수 있다.

미들웨어 시스템에서 멀티티어로 구성할때 고려하여야 할 요소는 Complexity와 Scalability이다. 중간서버의 잘못된 불필요한 적용은 Delay Time을 줄 수 있지만 이의 정확한 적용은 시스템의 신뢰성과 효율성을 동시에 제공한다. 미들웨어 시스템은 꼭 3Tier일 필요는 없고 시스템의 용도에 따라 다양하게 결정될수 있다. 미들웨어의 예로 Tuxido, MTS, WebSphere 등이 있다.

 

l         Data Base

   논리적으로 연관된 하나 이상의 자료의 모음으로 그 내용을 고도로 구조함으로써 검색과 갱신의 효율화를 꾀한 것이다. 즉, 몇 개의 자료 파일을 조직적으로 통합하여 자료 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체라고 할 수 있다.

데이터베이스가 가지는 몇 가지 특성을 살펴봄으로써 그 뜻을 보다 명확히 할 수 있다. 첫째 똑같은 자료를 중복하여 저장하지 않는 통합된 자료이며, 둘째 컴퓨터가 액세스하여 처리할 수 있는 저장장치에 수록된 자료이며, 셋째 어떤 조직의 기능을 수행하는 데 없어서는 안 되며 존재 목적이 뚜렷하고 유용성 있는 운영 자료이기 때문에 임시로 필요해서 모아 놓은 데이터나 단순한 입출력 자료가 아니라는 점이며, 넷째 한 조직에서 가지는 데이터베이스는 그 조직 내의 모든 사람들이 소유하고 유지하며 이용하는 공동 자료로서 각 사용자는 같은 데이터라 할지라도 각자의 응용 목적에 따라 다르게 사용할 수 있다는 점이다. 데이터베이스의 예로.. ORACLE, MS-SQL 등이 있다.