반응형
리뷰 (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. 호스팅 설정
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 에 작성된 글입니다.
반응형
'구름 쿠버네티스' 카테고리의 다른 글
구름 쿠버네티스 전문가 과정 6기 - 22일차 (0) | 2023.08.17 |
---|---|
구름 쿠버네티스 전문가 과정 6기 - 21일차 (0) | 2023.08.16 |
구름 쿠버네티스 전문가 과정 6기 - 19일차 (0) | 2023.08.08 |
구름 쿠버네티스 전문가 과정 6기 - 18일차 (0) | 2023.08.07 |
구름 쿠버네티스 전문가 과정 6기 - 17일차 (0) | 2023.07.25 |