어쩌다 IT
article thumbnail
반응형

리뷰 (Review)

더보기

DNS 서버 설정부터 호스팅 설정까지

 

1. DNS 설정

 

    1. bind9 설치

song@song:~$ sudo apt install bind9

 

    2. /etc/resolv.conf 설정

song@song:~$ sudo vi /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 192.168.56.195		# 서버 ip 입력
nameserver 127.0.0.1
nameserver 127.0.0.53
song@song:~$

 

    3. /etc/hostname 설정

song@song:~$ sudo vi /etc/hostname
song
ns.bind9.kr
ns.jinoo-k.kr		# 도메인 이름 등록
song@song:~$

 

    4. /etc/bind/named.conf.default-zones 설정

song@song:~$ sudo vi /etc/bind/named.conf.default-zones
...
zone "bind9.kr" {
        type master;
        file "/etc/bind/db.bind9.zone";
};

zone "jinoo-k.kr" {
        type master;
        file "/etc/bind/db.jinoo-k.zone";
};
...
song@song:~$

 

    5. /etc/bind/named.conf.options 설정

song@song:~$ sudo vi /etc/bind/named.conf.options
options {
        directory "/var/cache/bind";
        forwarders {
                8.8.8.8; 8.8.4.4;
        };
        dnssec-validation no;
        recursion yes;
        allow-query {any;};
        listen-on-v6 { any; };
};
song@song:~$

 

    6. Zone 파일 생성

song@song:~$ sudo vi /etc/bind/db.bind9.zone
;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns.bind9.kr. master.yes.kr. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.bind9.kr.
@       IN      A       1.1.1.1
dns     IN      A       192.168.56.195
kt      IN      A       3.3.3.3
ns      IN      A       4.4.4.4
www     IN      CNAME   dns.bind9.kr.
song@song:~$ sudo vi /etc/bind/db.jinoo-k.zone
;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns.jinoo-k.kr. master.jinoo-k.kr. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.jinoo-k.kr.
dns     IN      A       192.168.56.195
kt      IN      A       3.3.3.3
ns      IN      A       4.4.4.4
www     IN      CNAME   dns.jinoo-k.kr.
song@song:~$

 

    7. /etc/resolvconf/resolv.conf.d/head 수정

song@song:~$ cat /etc/resolvconf/resolv.conf.d/head
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 192.168.56.195
nameserver 127.0.0.1
nameserver 127.0.0.53
song@song:~$

 

    8. 필요시 방화벽 설정

song@song:~$ ufw allow 53/tcp
song@song:~$ ufw allow 53/udp
song@song:~$ sudo ufw enable
song@song:~$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
53/tcp                     ALLOW       Anywhere
53/udp                     ALLOW       Anywhere
80                         ALLOW       Anywhere
2049                       ALLOW       Anywhere
21                         ALLOW       Anywhere
22                         ALLOW       Anywhere
3306/tcp                   ALLOW       Anywhere
53/tcp (v6)                ALLOW       Anywhere (v6)
53/udp (v6)                ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
2049 (v6)                  ALLOW       Anywhere (v6)
21 (v6)                    ALLOW       Anywhere (v6)
22 (v6)                    ALLOW       Anywhere (v6)
3306/tcp (v6)              ALLOW       Anywhere (v6)

song@song:~$

 

    9. bind9 재시작

song@song:~$ sudo systemctl restart bind9
song@song:~$ sudo systemctl status bind9
song@song:~$ sudo systemctl status bind9
● named.service - BIND Domain Name Server
     Loaded: loaded (/lib/systemd/system/named.service; enabled; vendor preset:>
     Active: active (running) since Mon 2022-08-29 10:50:42 KST; 9h ago
       Docs: man:named(8)
   Main PID: 3367 (named)
      Tasks: 5 (limit: 4624)
...
song@song:~$

 

    10. nslookup 으로 확인

song@song:~$ nslookup www.bind9.kr
Server:         192.168.56.195
Address:        192.168.56.195#53

www.bind9.kr    canonical name = dns.bind9.kr.
Name:   dns.bind9.kr
Address: 192.168.56.195

song@song:~$ nslookup www.jinoo-k.kr
Server:         192.168.56.195
Address:        192.168.56.195#53

www.jinoo-k.kr  canonical name = dns.jinoo-k.kr.
Name:   dns.jinoo-k.kr
Address: 192.168.56.195

song@song:~$

 

2. 호스팅 설정

 

    쿠버네티스 18일차

 

www.jinoo-k.kr 로 클라이언트(좌), 서버(우) 실행

PHP

 

PHP 기초문법

  • 시작과 끝, 출력, 주석
<?php
	echo "Hello, World!"	// 는 주석을 의미
    /* 여러 행을
    주석 처리할 때 */
?>

/* 출력값
Hello, Wolrd! */

 

  • 상수와 변수
    • 상수 - 주어진 값을 일정하게 가진 것으로 문자열, 정수, 실수 등이 상수에 속함
    • 변수 - 입력하는 값에 따라 내용이 변하는 것으로 상수와 반대되는 개념
      • 변수명은 일반적으로 영문 소문자, 숫자, 밑줄(_)을 이용하여 생성
      • 특수문자, 한글, 공백이 들어가거나 숫자로 시작하면 안 됨
<?php
        $a = 10;		// $a 변수, 10 상수
        $b = 20;		// $b 변수, 20 상수
        $c = $a + $b;		// $c 변수
        echo "$c <br>";

        $a = 18.5;
        $b = 37.3;
        $c = $a + $b;
        echo "$c <br>";

        $fruit = "사과";		// $fruit 변수, "사과" 상수
        echo "$fruit <br>";

        $fruit = "오렌지";		// $fruit 변수, "오렌지" 상수
        echo "$fruit <br>";
?>

/* 출력값
30
55.8
사과
오렌지 */

 

  • 작은따옴표(' ')와 큰따옴표(" ")
    • echo문 안의 변수값을 출력하려면 큰따옴표를 사용해야 한다.
<?php
        $name = "홍지수";
        echo $name;
        echo "님 반갑습니다!";
        echo "<br>";

        $name = '홍지수';
        echo $name;
        echo '님 반갑습니다!';
?>

// 홍지수님 반갑습니다!
// 홍지수님 반갑습니다!

<?php
        $name = "홍지수";
        echo "$name 님 반갑습니다!";
        echo "<br>";

        $name = '홍지수';
        echo '$name 님 반갑습니다!';
?>

// 홍지수 님 반갑습니다!
// $name 님 반갑습니다!

 

  • 연산자


 

조건문

  • if 조건문
<?php
    if (조건식1) {
        문장1;
        문장2;
        ...
    } elseif (조건식2) {
        문장i;
        문장ii;
        ...
    } elseif (조건식3) {
    ...
    } else {
        문장A;
        문장B;
        ...
    }
?>

 

  • switch 조건문
<?php
	switch (변수)
    {
    	case 값1 :
        	문장1;
            문장2;
            ...
        break;
        case 값2 :
        	문장i;
            문장ii;
            ...
        break;
        ...
        default ;
        	문장A;
            문장B;
            ...
        break;
    }
?>

반복문

 

  • while 반복문
<?php
    변수값 초기화
    while (조건식)
    {
        문장1;
        문장2;
        ...
        변수값 증감
    }
?>
<?php
        $i = 1;
        $count = 0;
        while ($i<=100)
        {
                if ($i % 3 != 0)
                {
                        echo "$i ";
                        $count++;
                }
                if ($count % 10 == 0)
                        echo "<br>";

                $i++;
        }
?>

/* 출력값
1 2 4 5 7 8 10 11 13 14
16 17 19 21 22 23 25 26 28 29
...
91 92 94 95 97 98 100
*/

 

  • for 반복문
<?php
	for(초기값; 조건값; 증감값)
	{
		소스코드;
	}
?>
<?php
    $sum = 0;

    for ($i=1; $i<=100; $i++)
    {
        if($i%5 == 0)
      $sum = $sum + $i;
    }

    echo "1~100의 정수 중 5의 배수의 합계 : $sum";
?>

// 1~100의 정수 중 5의 배수의 합계 : 1050

배열

 

  • 배열 및 array
<?php
        //배열이용 합계, 평균구하기, 배열의 원소는 0부터 시작한다.

        $score[0] = 90;     // 영어 성적
        $score[1] = 80;     // 컴퓨터 개론 성적
        $score[2] = 85;     // 기초 프로그래밍 성적
        $score[3] = 95;     // 기초 수학 성적
        $score[4] = 93;    // 알고리즘 성적

        $sum = 0;
        for($a=0; $a<=4; $a++)
        {
            $sum = $sum + $score[$a];
        }

        $avg = $sum/5;

        echo("과목 점수 : $score[0], $score[1], $score[2], $score[3], $score[4]<br>");
        echo("합계 : $sum, 평균 : $avg <br>");
?>

/*
과목 점수 : 90, 80, 85, 95, 93
합계 : 443, 평균 : 88.6
<?php
    $scores = array(87, 76, 98, 87, 87, 93, 79, 85, 88, 63,
                       74, 84, 93, 89, 63, 99, 81, 70, 80, 95);

    $sum = 0;
    for($a = 0; $a < 20; $a++)
    {
        $sum = $sum + $scores[$a];  // 20명의 학생의 성적의 누적 합
    }

    $avg = $sum/20;                             // 평균 구하기
                                // 줄 바꿈
    echo("합계 : $sum, 평균 : $avg");
?>

// 합계 : 1671, 평균 : 83.55

함수

 

  • 함수의 개념
    • 함수는 함수 정의와 함수 호출로 이루어짐
    • 함수 정의는 그 함수가 어떤 기능을 수행하는지 정의하는 것
    • 함수 호출은 정의된 함수를 호출하여 함수 정의에서 기술한 문장을 수행하는 것
<?php
    function 함수명()
    {
        문장1;
        문장2;
        ...
    }
    
    함수명();
?>
<?php
    function 함수명(매개변수명1, 매개변수명2, ...)
    {
        문장1;
        문장2;
        ...
    }

    함수명(입력값1, 입력값2, ...);
?>

TIF

월요일부터 정신없는 하루가 지나갔다.

오전에는 기존 bind9.kr을 각자 도메인으로 변경해서 실습 환경을 만들었고,

오후부터는 그 도메인을 바탕으로 해서 PHP 관련 수업을 진행했다.

오늘은 수업 진도도 빨랐고 뭔가 정신없이 지나갔다. 정리한 것도 정말 기본적인 문법 정도만 정리했다.

그래도 참고 블로그에 C언어와 유사한 부분이 많다 하고 생활코딩에도 잘 나와있으니 그걸로 복습을 겸해야겠다.

 

SQL도 해야 하고 PHP도 해야 하고 해야 될 것들이 많다. 더 분발할 수 있도록 해야겠다.

 

 

2022. 08. 29 에 작성된 글입니다.

반응형
profile

어쩌다 IT

@jwlish

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!