Name Server는 이런  DNS를 운영하는 서버입니다.
일반적으로 가장 널리 쓰이는 프로그램은 BIND(Berkely Internet Name Domain)이라는 프로그램입니다.
사용하기도 쉽고, 설정 또한 편리한데다가 많은 사람들이 사용하다 보니까, 각종 버그 리포트 및 패치가 빨리 이루워 지고 사용에 대한 도움도 받기 쉬워서 많이 이용되고 있습니다.

BIND의 설치

1. 다운로드
https://www.isc.org/downloadables/11  에서 적절한 버전을 다운로드 한다.
2009년 3월 26일 현재에는 BIND 9.6.0-P1 버전이 product release 버전입니다. 
(예:bind-9.6.0-P1.tar.gz)

2.적당한 디렉토리에 압축을 해제한다.
  [root @linux]#/var/tmp
  [root @linux]#tar xvfz bind-9.6.0-P1.tar.gz

3.make 유틸리티를 이용해서 컴파일 한다.
  [root @linux]#make stdlinks --> 최상위 레벨 디렉토리에서 모든 것을 컴파일 해둔다.
  [root @linux]#make clean    --> 새로 컴파일 할수 있도록 함.
  [root @linux]#make depend --> 의존성 검사 
  [root @linux]#make all        --> 모두 파일을 컴파일
  [root @linux]#make install   --> 옵션을 사용해서 설치되는 위치를 지정할 수있다.
                                                (예:--DESTDIR=/usr/local/bind)
4.환경 파일을 설정한다.
  (예:named.conf , 특별한 옵션을 주지 않고 설치 했다면 /etc/아래에 위치해야 된다.)

5. 환경 설정
  [root @linux]#vi /etc/named.conf
  #named.conf --> BIND운영환경 설정파일 
  options {  --->각종옵션들을 적어 줍니다.
         directory "/var/named"; --->named 가 사용할 임시 디렉토리 주소
  }; 

  #(아래의 파일은 /var/named아래에 있어야 됩니다.) 위에서 지정한 디렉토리 아래
  zone "." in { --> 모든 도메인 네임이 참고 할 데이터 영역 지정
        type hint; 
        file "db.named.cache";  -->ISC에서 제공하는 데이터 파일입니다.
  }
  zone "domain.net" in { -->자신의 도메인이 참고 할 데이터 영역 지정.
        type master; 
        file "db.domain.net"; -->자신이 설정 해주어야 됩니다.
  }; 

  zone "123.21.204.in-addr.arpa" in  { 
        -->아이피를 도메인 네임으로 변경해줌(서버 아이피가 204.21.123.XX일때)
        type master; 
        file "named.local"; 
  }
위의 설정 파일은 단지 예제에 불과하므로, 자신의 시스템에 맞도록 설정해야 합니다.

설정파일을 만드는 법은 BIND문서를 참고 하시거나 인터넷에서 검색해보시는 것도 좋은 방법이 될 것입니다. 위의 설정 파일 부분에서 도메인 영역을 자신의 도메인으로 바꾸고, 아이피 부분을 자신의 서버 아이피로 바꾸어 주고 실행 시켜면 네임서버가 실행 됩니다.

물론 각 지정 파일들은 지정 디렉토리 아래에 존재해야 됩니다.
ISC에서 제공하는 파일은 FTP로 받아 올수 있습니다.

자신의 도메인 서버가 사용할 영역 파일은 다음과 같을 수 있습니다
  [root @linux]#vi /var/named/db.domain.net
  $TTL 3h
  @                IN        SOA        ns.domain.net.        root.domain.net. (
                        1 ; serial
                        3h ; refresh
                        1h ; retry
                        1w ; expire
                        1h ; default_ttl
                        )
  ;
  ;
                IN        NS        ns.domain.net.
  ;
  ;
  localhost           IN        A        127.0.0.1
  domain.net.        IN        A        54.15.15.94
  www                IN        A        54.15.15.95
  ns                    IN        A        54.15.15.94

  [root @linux]#vi /var/named/db.54.15.15
  $TTL 3h
  @                IN        SOA        ns.domain.net.        root.domain.net. ( 
                -->네임서버의 도메인네임.(ns라는 호스트로 지정했습니다.)
                -->root.domain.net. root라는 관리자의 메일주소를 뜻합니다.
                -->항상 마침표 . 를 찍어 주셔야 됩니다.
                1 ; serial
                3h ; refresh
                1h ; retry
                1w ; expire
                1h ; default_ttl
                )        
  ; 
  ;
                IN        NS        ns.domain.net.
  ;
  ;
  94        IN        PTR        ns.domain.net.
  95        IN        PTR        www.domain.net. -->해당아이피에 도메인 네임 할당.
                                        -->54.15.15.94는 네임서버의 아이피로 지정하고,
                                        -->54.15.15.95는 www 호스트의 아이피로 지정함.

6. 네임서버 실행
named라는 실행파일이 자신이 설치한 디렉토리의 bin디렉토리 아래에 존재 합니다.
(예:/usr/local/bind8/bin/named &)
블로그 이미지

커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

,

FTP 서버는 파일 전송 프로토콜을 서비스 해주는 서버 어플리케이션 입니다.

ProFTPd 설치 및 운영법

1. 다운로드 
http://www.proftpd.org 에 접속하시면, 최신 버전을 다운로드 하실 수 있습니다.
2009년 3월 26일 현재, 1.3.2 버전이 최신 버전입니다.(예:proftpd-1.3.2.tar.gz)

2.압축 해제
  (예:/var/tmp/proftpd-1.3.2)
  [root @linux]#pwd
  /var/tmp
  [root @linux]#ls
  proftpd-1.3.2.tar.gz
  [root @linux]#tar xvfz proftpd-1.3.2.tar.gz
  [root @linux]#cd proftpd-1.3.2

3.컴파일 및 설치
  [root @linux]#cd /var/tmp/proftpd-1.3.2
  [root @linux]#./configure --prefix=/usr/local/proftpd  
  [root @linux]#make
  [root @linux]#make install

4.데몬 환경 파일 설정
  (예;/usr/local/proftpd/etc/proftpd.conf)
  [root @linux]#vi /usr/local/proftpd/etc/proftpd.conf
  user nobody  ---> 사용자와 그룹을 nobody로 바꿔 줍니다.
  group nobody

5.데몬 실행
  [root @linux]#/usr/local/proftpd/bin/proftpd &
  
6. 재부팅시마다 시작하게 만들기
 /etc/rc.d/rc.local파일에 다음의 명령을 추가 합니다.(Gentoo Linux의 경우입니다.)
  #ProFTPD start
  /usr/local/proftpd/bin/proftpd &

 
리눅스 서버를 공개 자료실로 이용하고 싶으실때는 Anonymous접속을 allow해주면 됩니다.

블로그 이미지

커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

,

블로그 정리중 글 옮김92009년 3월 26일 글)

apache 웹서버에서는 mod_rewrite 와 Virtual User Hosts 를 사용하여, 각 user들에게 도메인을 제공해줄 수 있습니다.

예를 들면, http://www.server.com/~userid로 접속을 하는 것을  http://userid.server.com 으로 서비스할 수 있습니다.

1. 네임서버 설정
해당하는 zone 파일의 호스트 이름에 "*" 문자(모든 호스트)를 사용
  * IN A 123.123.123.123

2. mod_rewrite 모듈 빌드 및 탑재
mod_rewrite.so 가 존재할 경우(apache의 모듈들이 설치된 디렉토리)에는 바로 httpd.conf를 수정하면 됩니다.

위의 모듈이 없을 경우, apache를 다시 빌드해야 합니다.
[root @ linux]# env CFLAGS="-DEAPI"
[root @ linux]#     ./configure
         --prefix=/etc/httpd
         --enable-module=so
         --enable-shared=max
         --enable-module=rewrite
         --enable-shared=rewrite

[root @ linux]# make
[root @ linux]# make install

3. httpd.conf 에 rewrite 관련 설정
  
LoadModule rewrite_module libexec/mod_rewrite.so
AddModule mod_rewrite.c
    ......
 
<VirtualHost *>
        ServerAdmin admin_at_domain.com
        DocumentRoot /home/httpd/html
        ServerName www.server.com
        ServerAlias domain.com *.server.com
        ErrorLog logs/server.com-error_log
        CustomLog logs/server.com-access_log common


        ### Virtual User Hosts


        RewriteEngine on


        RewriteCond %{HTTP_HOST} !^www.server.com$
        RewriteCond %{HTTP_HOST} !^server.com$
        RewriteCond %{HTTP_HOST} ^[^.]+.server.com$
        RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
        RewriteRule ^([^.]+).server.com(.*) /home/$1/html$2
</VirtualHost>


    



블로그 이미지

커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

,

블로그정리중 글 옮김(2009년 3월 26일 글)

 

Apahche + PHP + MySQL을 같이 잘 맞물리게 해서 홈페이지나 사이트를 구축할때 게시판이나 각종 데이터 베이스 처리가 필요 할때, 보다 수월하게 사용할 수 있습니다.

Apache라는 것은 웹서버를 말하는 것인데, 지금 우리가 접할 수 있는 거의 대부분의 웹서버에서는 아파치를 사용하고 있습니다. 아파치는 1.X버전과 2.X버전 두가지 부류로 나뉘어 지는데, 그 설치 방법과 운영방법이 크게 다르기 때문에 설치 방법이나 운영방법에 대해서 잘 익힌 다음에 설치 하도록 해야 됩니다.
http://www.apache.org

PHP는 펄이나 CGI 프로그램 처럼 서버에서 정해진 작업을 한 다음에 클라인언트로 그 결과를 보내주는 언어 입니다. 그 사용방법이나 구조등이 C언어와 유사하기 때문에 많은 CGI프로그래머들이 PHP로 방향을 전환하게 되었고, 지금은 아주 많은 분야에서 사용되고 있습니다. 쇼핑몰의 구축이나 데이터 베이스등의 관리 여러가지 작업을 할 수 있는 반면 사용법이 아주 쉽기 때문에 널리 확산되었습니다.
http://www.php.net

MySQL은 데이터 베이스를 처리하는 프로그램입니다. 
http://www.mysql.com

그러면 위의 세가지 프로그램을 연동 시켜 보기로 합시다.
첫번째는 Apache 1.3.XX + PHP + MySQL 방법에 대해서 이야기 해보겠습니다.

MySQL은 아파치의 버전에 상관없이 그냥 설치 해도 됩니다.

MySQL의 설치 방법

1.다운로드
MySQL 사이트에서 Stable Version 소스 코드를 다운로드 합니다.(예:mysql-4.0.13.tar.gz)

2.Linux Box의 적당한 디렉토리에 저장해둡니다.(예;/var/tmp)

3.tar과 gunzip로 패키징 되어 있는 파일이므로 압축을 해제합니다.
  어떤 파일인지 확실히 확인해 보시기 위해서는 "file 파일명" 명령으로 확인해보시면 됩니다.
  [root @linux]#pwd   --> 현재 디렉토리 확인
  /var/tmp

  [root @linux]#ls    --> 어떤 파일이 있는 지 확인
  mysql-4.0.13.tar.gz

  [root @linux]#tar xvfz mysql-4.0.13.tar.gz --> 압축해제
  ..................
  ..................
  ..................

  [root @linux]#ls
  mysql-4.0.13      mysql-4.0.13.tar.gz  ---> 새로운 디렉토리가 생겼음

  [root @linux]#cd mysql-4.0.13 --> MySQL의 소스파일이 있는 디렉토리로 이동.

4. 컴파일을 하기 위한 환경파일 Makefile들을 생성합니다.
  [root @linux]#./configure --prefix=/usr/local/mysql --with-charset=euc_kr --localstatedir=/DB
  make라는 유틸리티를 이용해서 컴파일 하기 때문에 make환경설정을 해주어야 됩니다.
  --prefix= 은 컴파일 후에 설치할 디렉토리를 지정하는 것입니다.(/usr/local/mysql이라는 디렉토리에 설치)
  --with-charset=euc_kr 어떤 문자셋으로 설정 할 것인지 지정합니다.(euc_kr :한국어)
  --localstatedir=/DB   데이터 베이스 파일들을 어디에 저장할 것인지를 지정합니다.(/DB라는 디렉토리에 저장.)
  이것은 일반적인 방법이고 좀더 다양한 옵션들을 지정해 줄 수도 있습니다.
  그것들에 대한 설명은 MySQL 문서들을 참고 하시면 됩니다.
  프렌존 서버는 다음과 같은 옵션으로 컴파일 되어있습니다.
  --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --prefix=/usr/local/mysql --with-charset=euc_kr --localstatedir=/DB

  성공적으로 작업이 끝나면 감사 메세지가 나옵니다. 안나오면 비정상이므로 다시 한번 확인해주시길 바랍니다.

5.make를 이용한 컴파일 및 설치
  [root @linux]#make --> 컴파일 합니다.
  [root @linux]#make install --> 설치 합니다.
  [root @linux]#cd /usr/local/mysql 
  파일이 다 만들어 져 있으면 일단 컴파일 및 설치는 끝난것입니다.

6.mysql 사용자 추가
  MySQL은 root권한으로 돌아가지 않고 mysql user의 권한으로 돌아가게 됩니다. 그렇기 때문에 시스템에 mysql이라는 사용자를 추가하고 패스워드를 설정해야 됩니다.
  최대한 어려운 패스워드를 설정해두면 나중에 보안상의 문제를 조금이나마 막을 수 있습니다.
  [root @linux]#useradd mysql -->사용자 추가(로그인 쉘등을 지정해서 로그인이 안되도록 설정해두는것도 좋습니다.)
  [root @linux]#pass mysql -->패스워드 설정.
  New password:
  
7.데이터 베이스가 저장되는 디렉토리의 소유자 및 그룹을 mysql로 변경.
  [root @linux]#chown -R mysql:mysql /DB --> /DB에 파일을 저장하기로 했으므로, 그 소유자와 그룹을 mysql로 설정합니다.

8.MySQL기본 권한 테이블을 설정
(스크립트가 제공 되기 때문에 한번 만 실행 시켜 주면 됩니다.)
  [root @linux]#cd /usr/local/mysql
  [root @linux]#./bin/mysql_install_db --> 때로는 scripts라는 디렉토리 밑에 있는 경우도 있습니다.

9.데이터 베이스 데몬을 실행
  [root @linux]#cd /usr/local/mysql
  [root @linux]#./bin/mysqld_safe & --> 백그라운드로 데몬을 실행 시킵니다.
  [root @linux]#ps -ef | grep mysqld --> 실행이 잘 되고 있는 지 확인.
  mysql      768   738  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      770   768  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      771   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      772   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      773   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      774   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      779   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      780   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      781   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      782   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  
  만약에 실행이 되지 않고 에러가 나온다면 /DB 디렉토리로 이동해서 error 로그 파일을 열어보시면, 그 원인이 적혀 있습니다.
  읽어보신 후에 적절한 조치를 취해주시면 됩니다.

10.MySQL 관리가 패스워드 설정
  [root @linux]#cd /usr/local/mysql
  [root @linux]#./bin/mysql -u root
  mysql>SET PASSWORD for root=password('password');
  mysql>exit


PHP 설치
다음 단계는 Apache 1.3.XX 버전을 사용하기로 했기때문에 PHP와 연동을 위해서 Apache의 환경 설정을 먼저 한번 해주어야 됩니다.

[root @linux]#cd /var/tmp/apache-1.3.XX
[root @linux]#./configure --prefix=/usr/local/apache


이제는 PHP의 소스코드가 있는 디렉토리로 이동하여 컴파일을 해주면 됩니다.

[root @linux]#cd /var/tmp/php-4.3.2
[root @linux]#./configure --prefix=/usr/local/php --with-apache=/var/tmp/apache-1.3.XX --with-mysql=/usr/local/mysql --with-language=korean --with-charset=euc_kr --with-config-file-path=/usr/local/apache/conf --enable-track-vars=yes
[root @linux]#make
[root @linux]#make install 

 PHP설치 끝입니다.(PHP는 모듈로 아파치에 같이 들어 가게 되므로, 실행 할 필요가 없습니다.)

APACHE 설치

[root @linux]#cd /var/tmp/apache-1.3.XX
[root @linux]#./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a --> php 연동을 위한 것입니다.
 [root @linux]#make
 [root @linux]#make install

Apache 설치 끝입니다.

환경설정 및 실행
PHP 소스 디렉토리에 보면 php.ini-XXXXX라는 파일들이 있습니다. 이중에서 php.ini-recommended 라는 파일을 apache의 conf라는 디렉토리에 php.ini라는 파일로 복사합니다.Apache의 conf 디렉토리를 보면 httpd.conf라는 파일이 있습니다. 그 파일을 자신의 환경에 맞게 설정해주면 됩니다.

AddType application/x-httpd-php .php .php3 .php4 .phtml .html
AddType application/x-httpd-php-source .phs .phps

이 부분을 httpd.conf에 추가 해줍니다. (Add for PHP라는 부분이 있을 것입니다.)

이제 모든 준비가 끝났습니다.
아파치만 실행 시키면 여러분의 박스에는 APM연동이 끝난 웹서버가 돌아가게 될것입니다.
실행은 다음과 같은 명령으로 할 수 있습니다

[root @linux]#/usr/local/apache/bin/apachectl start --> 시작
[root @linux]#/usr/local/apache/bin/apachectl stop --> 정지
[root @linux]#/usr/local/apache/bin/apachectl restart --> 새로 시작.


서버가 부팅 될때마다 Mysql과 Apache를 실행 시킬 수 있게 하시려면, /etc/rc.d/rc.local이라는 파일에 실행 명령을 추가 해주면 됩니다.

[root @linux]#vi /etc/rc.d/rc.local
#MySQL Start
cd /usr/local/mysql
./bin/mysqld_safe &
#Apache Start
/usr/local/apache/bin/apachectl start &




APACHE 2.0.XX 버전사용시
MySQL은 설치 해둔 상태에서 위의 방법과는 다르게 Apache를 설치 합니다.(PHP를 수동으로 적재)

[root @linux]#cd /var/tmp/apache-2.0.XX
[root @linux]#./configure --prefix=/usr/local/apache2 --enable-so --enable-mods-shared=all --enable-modules=shared --with-mpm=threadpool
[root @linux]#make
[root @linux]#make install

이제는 PHP를 설치 합니다.

[root @linux]#cd /var/tmp/php-4.3.2
[root @linux]#CFLAGS="-L/usr/local/mysql/lib/mysql -lmysqlclient"
[root @linux]#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --enable-track-vars=yes --with-language=korean --disable-debug --with-charset=euc_kr --enable-modules=so --enable-trans-sid --with-config-file-path=/usr/local/apache2/conf 
[root @linux]#make
[root @linux]#make install

PHP의 컴파일 방법이 조금 달라 진것이 보이 실 것입니다.
이렇게 해두면 수동으로 모듈을 적재 시킬 수 있게 됩니다.

환경 파일은 apache의 httpd.conf만 수정해주면 됩니다. 위에서 한 작업과 동일합니다.
물론 php.ini파일은 conf디렉토리로 복사해 주셔야 됩니다.

httpd.conf 수정

LoadModule php4_module        modules/libphp4.so 
AddType application/x-httpd-php .php .php3 .php4 .phtml .html
AddType application/x-httpd-php-source .phs .phps



 

블로그 이미지

커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

,