블로그 이미지
오정oI

카테고리

분류 전체보기 (119)
회사 - pj # 나라원 (1)
회사 - pj # 나라원 (2)
이직준비 (10)
국비-클라우드 (1)
학점은행제 (0)
취미 (0)
주식 (0)
외국어 (0)
자격증 (14)
BigData_On (1)
BigData_Off1 (74)
클라우드 (0)
언어_Framework (1)
언어-Server (2)
언어_Client (0)
업무 (1)
IT참고서적 (1)
IT 최신 트랜드 (0)
제테크 (1)
Study Plan (2)
동영상 및 자료 (5)
여행 (1)
git (0)
Total
Today
Yesterday
반응형
SMALL

* 강사님 강의 노트 :

2월6일_19평일리2.txt

* Database

1> 개념

ㆍDatabase : 여러가지 공동의 업무에 필요한 데이터를 유기적으로 결합하여 저장한 집합체

 

ㆍDBMS(DataBase Management System)

- 데이타베이스 관리자라고도 불림

- 다수의 컴퓨터 사용자들의 데이터베이스 안에 데이터들을 기록하거나 접근할 수 있게 해주는 프로그램

- 목적은 데이터베이스 내의 정보 검색, 저장, 효율적인 환경을 제공함

- RDBMS(Relation(관계형) DBMS)는 표준화되어 사용자 및 프로그램 인터페이스를 제공함

 

ㆍSQL(Structured Query Language : 구조화 질의 언어)

- 종류로는 Oracle, MySQL, MariaDB 등이 있음

 

ㆍMySQL(CentOS 6.x 까지)

- SQL문을 사용하는 오픈 소스의 RDBMS

- 매우 빠르고 유연하고 사용하기 쉬운 장점

- 다중 사용자, 다중 스레드를 지원하고 C, C++, Java, PHP 스크립트 언어를 위한 응용 프로그램 인터페이스를

제공함

- 유닉스, 윈도우즈 서버, 리눅스에서도 사용함

 

MariaDB

- SQL문을 사용하는 오픈 소스의 RDBMS

- MySQL과 동일한 소스 코드를 기반으로 GPL v2 라이선스를 따름

- Oracle 소유의 현재 불확실한 MySQL의 라이선스 상태에서 반발하여 만들어짐

- MySQL 5.5 까지는 소스 코드가 거의 동일함

 

2> 실습

 

패키지명은 mariadb로 시작함

mariadb.service를 재시작

 

mariadb 접속방법

# mysql -u root -p mysql

 

mysql은 명령어

-u은 접속할 사용가 계정명

root는 관리자

-p는 접속할 사용자 계정의 비밀번호

mysql은 사용할 데이터베이스명

 

비밀번호는 처음이기 때문에 null 값이다.

 

mariadb 버전과 현재 날짜

select version(), current_date;

 

참고로 명령어 뒤에는 반드시 ; (세미콜론)을 입력!

 

① 첫번째 명령어

> show

 

show는 데이터베이스 목록을 출력

show는 테이블 목록을 출력

 

show는 데이터베이스와 테이블에서 사용 가능한 명령어

 

사용형식

> show databases;

> show tables;

 

cf) table (> show tables;)

table은 관계형 데이터베이스에서 세로줄과 가로줄의 모델을 이용하여

정렬된 데이터 집합(값)의 모임

 

db table은 데이터베이스와 사용자를 연동(연결)시켜주는 테이블

user table은 사용자 생성 테이블 사용자는 user table에서만 생성할 수 있음

 

 

 

 

 

 

// mariadb 실습

[root@junga ~]# yum -y install mariadb*
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.daumkakao.com
 * extras: ftp.daumkakao.com
 * updates: ftp.daumkakao.com
Package 1:mariadb-libs-5.5.56-2.el7.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package mariadb.x86_64 1:5.5.56-2.el7 will be installed
---> Package mariadb-bench.x86_64 1:5.5.56-2.el7 will be installed
--> Processing Dependency: perl(GD) for package: 1:mariadb-bench-5.5.56-2.el7.x86_64
---> Package mariadb-devel.x86_64 1:5.5.56-2.el7 will be installed
--> Processing Dependency: openssl-devel(x86-64) for package: 1:mariadb-devel-5.5.56-2.el7.x86_64
---> Package mariadb-embedded.x86_64 1:5.5.56-2.el7 will be installed
---> Package mariadb-embedded-devel.x86_64 1:5.5.56-2.el7 will be installed
---> Package mariadb-server.x86_64 1:5.5.56-2.el7 will be installed
--> Processing Dependency: perl-DBD-MySQL for package: 1:mariadb-server-5.5.56-2.el7.x86_64
---> Package mariadb-test.x86_64 1:5.5.56-2.el7 will be installed
--> Processing Dependency: perl(Test::More) for package: 1:mariadb-test-5.5.56-2.el7.x86_64
--> Processing Dependency: perl(Env) for package: 1:mariadb-test-5.5.56-2.el7.x86_64
--> Running transaction check
---> Package openssl-devel.x86_64 1:1.0.2k-8.el7 will be installed
--> Processing Dependency: zlib-devel(x86-64) for package: 1:openssl-devel-1.0.2k-8.el7.x86_64
--> Processing Dependency: krb5-devel(x86-64) for package: 1:openssl-devel-1.0.2k-8.el7.x86_64
---> Package perl-DBD-MySQL.x86_64 0:4.023-5.el7 will be installed
---> Package perl-Env.noarch 0:1.04-2.el7 will be installed
---> Package perl-GD.x86_64 0:2.49-3.el7 will be installed
---> Package perl-Test-Simple.noarch 0:0.98-243.el7 will be installed
--> Running transaction check
---> Package krb5-devel.x86_64 0:1.15.1-8.el7 will be installed
--> Processing Dependency: libkadm5(x86-64) = 1.15.1-8.el7 for package: krb5-devel-1.15.1-8.el7.x86_64
--> Processing Dependency: libverto-devel for package: krb5-devel-1.15.1-8.el7.x86_64
--> Processing Dependency: libselinux-devel for package: krb5-devel-1.15.1-8.el7.x86_64
--> Processing Dependency: libcom_err-devel for package: krb5-devel-1.15.1-8.el7.x86_64
--> Processing Dependency: keyutils-libs-devel for package: krb5-devel-1.15.1-8.el7.x86_64
---> Package zlib-devel.x86_64 0:1.2.7-17.el7 will be installed
--> Running transaction check
---> Package keyutils-libs-devel.x86_64 0:1.5.8-3.el7 will be installed
---> Package libcom_err-devel.x86_64 0:1.42.9-10.el7 will be installed
---> Package libkadm5.x86_64 0:1.15.1-8.el7 will be installed
---> Package libselinux-devel.x86_64 0:2.5-11.el7 will be installed
--> Processing Dependency: libsepol-devel(x86-64) >= 2.5-6 for package: libselinux-devel-2.5-11.el7.x86_64
--> Processing Dependency: pkgconfig(libsepol) for package: libselinux-devel-2.5-11.el7.x86_64
--> Processing Dependency: pkgconfig(libpcre) for package: libselinux-devel-2.5-11.el7.x86_64
---> Package libverto-devel.x86_64 0:0.2.5-4.el7 will be installed
--> Running transaction check
---> Package libsepol-devel.x86_64 0:2.5-6.el7 will be installed
---> Package pcre-devel.x86_64 0:8.32-17.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================================
 Package                        Arch           Version                  Repository    Size
===========================================================================================
Installing:
 mariadb                        x86_64         1:5.5.56-2.el7           base         8.7 M
 mariadb-bench                  x86_64         1:5.5.56-2.el7           base         388 k
 mariadb-devel                  x86_64         1:5.5.56-2.el7           base         752 k
 mariadb-embedded               x86_64         1:5.5.56-2.el7           base         3.6 M
 mariadb-embedded-devel         x86_64         1:5.5.56-2.el7           base         7.4 M
 mariadb-server                 x86_64         1:5.5.56-2.el7           base          11 M
 mariadb-test                   x86_64         1:5.5.56-2.el7           base         8.1 M
Installing for dependencies:
 keyutils-libs-devel            x86_64         1.5.8-3.el7              base          37 k
 krb5-devel                     x86_64         1.15.1-8.el7             base         266 k
 libcom_err-devel               x86_64         1.42.9-10.el7            base          31 k
 libkadm5                       x86_64         1.15.1-8.el7             base         174 k
 libselinux-devel               x86_64         2.5-11.el7               base         186 k
 libsepol-devel                 x86_64         2.5-6.el7                base          74 k
 libverto-devel                 x86_64         0.2.5-4.el7              base          12 k
 openssl-devel                  x86_64         1:1.0.2k-8.el7           base         1.5 M
 pcre-devel                     x86_64         8.32-17.el7              base         480 k
 perl-DBD-MySQL                 x86_64         4.023-5.el7              base         140 k
 perl-Env                       noarch         1.04-2.el7               base          16 k
 perl-GD                        x86_64         2.49-3.el7               base         173 k
 perl-Test-Simple               noarch         0.98-243.el7             base         170 k
 zlib-devel                     x86_64         1.2.7-17.el7             base          50 k

Transaction Summary
===========================================================================================
Install  7 Packages (+14 Dependent packages)

Total download size: 43 M
Installed size: 285 M
Downloading packages:
(1/21): libcom_err-devel-1.42.9-10.el7.x86_64.rpm                   |  31 kB  00:00:00    
(2/21): keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm                  |  37 kB  00:00:02    
(3/21): krb5-devel-1.15.1-8.el7.x86_64.rpm                          | 266 kB  00:00:02    
(4/21): libsepol-devel-2.5-6.el7.x86_64.rpm                         |  74 kB  00:00:00    
(5/21): libkadm5-1.15.1-8.el7.x86_64.rpm                            | 174 kB  00:00:00    
(6/21): libverto-devel-0.2.5-4.el7.x86_64.rpm                       |  12 kB  00:00:00    
(7/21): mariadb-bench-5.5.56-2.el7.x86_64.rpm                       | 388 kB  00:00:00    
(8/21): mariadb-devel-5.5.56-2.el7.x86_64.rpm                       | 752 kB  00:00:00    
(9/21): libselinux-devel-2.5-11.el7.x86_64.rpm                      | 186 kB  00:00:02    
(10/21): mariadb-embedded-5.5.56-2.el7.x86_64.rpm                   | 3.6 MB  00:00:10    
(11/21): mariadb-5.5.56-2.el7.x86_64.rpm                            | 8.7 MB  00:00:30    
(12/21): mariadb-embedded-devel-5.5.56-2.el7.x86_64.rpm             | 7.4 MB  00:01:24    
mariadb-test-5.5.56-2.el7.x86_ FAILED                                         
http://ftp.daumkakao.com/centos/7.4.1708/os/x86_64/Packages/mariadb-test-5.5.56-2.el7.x86_64.rpm: [Errno 14] curl#18 - "transfer closed with 7331664 bytes remaining to read"
Trying other mirror.
(13/21): pcre-devel-8.32-17.el7.x86_64.rpm                          | 480 kB  00:00:00    
(14/21): openssl-devel-1.0.2k-8.el7.x86_64.rpm                      | 1.5 MB  00:00:00    
(15/21): mariadb-server-5.5.56-2.el7.x86_64.rpm                     |  11 MB  00:01:26    
(16/21): perl-GD-2.49-3.el7.x86_64.rpm                              | 173 kB  00:00:00    
(17/21): perl-Test-Simple-0.98-243.el7.noarch.rpm                   | 170 kB  00:00:00    
(18/21): zlib-devel-1.2.7-17.el7.x86_64.rpm                         |  50 kB  00:00:00    
(19/21): perl-DBD-MySQL-4.023-5.el7.x86_64.rpm                      | 140 kB  00:00:05    
(20/21): perl-Env-1.04-2.el7.noarch.rpm                             |  16 kB  00:00:05    
mariadb-test-5.5.56-2.el7.x86_ FAILED                                          7:10:46 ETA
http://ftp.kaist.ac.kr/CentOS/7.4.1708/os/x86_64/Packages/mariadb-test-5.5.56-2.el7.x86_64.rpm: [Errno 12] Timeout on http://ftp.kaist.ac.kr/CentOS/7.4.1708/os/x86_64/Packages/mariadb-test-5.5.56-2.el7.x86_64.rpm: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')
Trying other mirror.
(21/21): mariadb-test-5.5.56-2.el7.x86_64.rpm                       | 8.1 MB  00:00:00    
-------------------------------------------------------------------------------------------
Total                                                      285 kB/s |  43 MB  00:02:36    
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 1:mariadb-5.5.56-2.el7.x86_64                                          1/21
  Installing : perl-DBD-MySQL-4.023-5.el7.x86_64                                      2/21
  Installing : 1:mariadb-server-5.5.56-2.el7.x86_64                                   3/21
  Installing : libsepol-devel-2.5-6.el7.x86_64                                        4/21
  Installing : pcre-devel-8.32-17.el7.x86_64                                          5/21
  Installing : libselinux-devel-2.5-11.el7.x86_64                                     6/21
  Installing : libkadm5-1.15.1-8.el7.x86_64                                           7/21
  Installing : keyutils-libs-devel-1.5.8-3.el7.x86_64                                 8/21
  Installing : 1:mariadb-embedded-5.5.56-2.el7.x86_64                                 9/21
  Installing : libverto-devel-0.2.5-4.el7.x86_64                                     10/21
  Installing : libcom_err-devel-1.42.9-10.el7.x86_64                                 11/21
  Installing : krb5-devel-1.15.1-8.el7.x86_64                                        12/21
  Installing : perl-GD-2.49-3.el7.x86_64                                             13/21
  Installing : perl-Test-Simple-0.98-243.el7.noarch                                  14/21
  Installing : zlib-devel-1.2.7-17.el7.x86_64                                        15/21
  Installing : 1:openssl-devel-1.0.2k-8.el7.x86_64                                   16/21
  Installing : 1:mariadb-devel-5.5.56-2.el7.x86_64                                   17/21
  Installing : perl-Env-1.04-2.el7.noarch                                            18/21
  Installing : 1:mariadb-test-5.5.56-2.el7.x86_64                                    19/21
  Installing : 1:mariadb-embedded-devel-5.5.56-2.el7.x86_64                          20/21
  Installing : 1:mariadb-bench-5.5.56-2.el7.x86_64                                   21/21
  Verifying  : perl-Env-1.04-2.el7.noarch                                             1/21
  Verifying  : 1:mariadb-embedded-devel-5.5.56-2.el7.x86_64                           2/21
  Verifying  : zlib-devel-1.2.7-17.el7.x86_64                                         3/21
  Verifying  : perl-Test-Simple-0.98-243.el7.noarch                                   4/21
  Verifying  : perl-GD-2.49-3.el7.x86_64                                              5/21
  Verifying  : libcom_err-devel-1.42.9-10.el7.x86_64                                  6/21
  Verifying  : libverto-devel-0.2.5-4.el7.x86_64                                      7/21
  Verifying  : 1:mariadb-embedded-5.5.56-2.el7.x86_64                                 8/21
  Verifying  : krb5-devel-1.15.1-8.el7.x86_64                                         9/21
  Verifying  : libselinux-devel-2.5-11.el7.x86_64                                    10/21
  Verifying  : 1:mariadb-devel-5.5.56-2.el7.x86_64                                   11/21
  Verifying  : 1:mariadb-bench-5.5.56-2.el7.x86_64                                   12/21
  Verifying  : keyutils-libs-devel-1.5.8-3.el7.x86_64                                13/21
  Verifying  : libkadm5-1.15.1-8.el7.x86_64                                          14/21
  Verifying  : pcre-devel-8.32-17.el7.x86_64                                         15/21
  Verifying  : libsepol-devel-2.5-6.el7.x86_64                                       16/21
  Verifying  : 1:mariadb-test-5.5.56-2.el7.x86_64                                    17/21
  Verifying  : 1:mariadb-server-5.5.56-2.el7.x86_64                                  18/21
  Verifying  : 1:openssl-devel-1.0.2k-8.el7.x86_64                                   19/21
  Verifying  : perl-DBD-MySQL-4.023-5.el7.x86_64                                     20/21
  Verifying  : 1:mariadb-5.5.56-2.el7.x86_64                                         21/21

Installed:
  mariadb.x86_64 1:5.5.56-2.el7                   mariadb-bench.x86_64 1:5.5.56-2.el7     
  mariadb-devel.x86_64 1:5.5.56-2.el7             mariadb-embedded.x86_64 1:5.5.56-2.el7  
  mariadb-embedded-devel.x86_64 1:5.5.56-2.el7    mariadb-server.x86_64 1:5.5.56-2.el7    
  mariadb-test.x86_64 1:5.5.56-2.el7            

Dependency Installed:
  keyutils-libs-devel.x86_64 0:1.5.8-3.el7       krb5-devel.x86_64 0:1.15.1-8.el7        
  libcom_err-devel.x86_64 0:1.42.9-10.el7        libkadm5.x86_64 0:1.15.1-8.el7          
  libselinux-devel.x86_64 0:2.5-11.el7           libsepol-devel.x86_64 0:2.5-6.el7       
  libverto-devel.x86_64 0:0.2.5-4.el7            openssl-devel.x86_64 1:1.0.2k-8.el7     
  pcre-devel.x86_64 0:8.32-17.el7                perl-DBD-MySQL.x86_64 0:4.023-5.el7     
  perl-Env.noarch 0:1.04-2.el7                   perl-GD.x86_64 0:2.49-3.el7             
  perl-Test-Simple.noarch 0:0.98-243.el7         zlib-devel.x86_64 0:1.2.7-17.el7        

Complete!
[root@junga ~]# mysql -u root -p mysql
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@junga ~]#
[root@junga ~]# systemctl restart mariadb.service
[root@junga ~]#
[root@junga ~]# mysql -u root -p mysql
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [mysql]> select version(), current_date;
+----------------+--------------+
| version()      | current_date |
+----------------+--------------+
| 5.5.56-MariaDB | 2018-02-06   |
+----------------+--------------+
1 row in set (0.00 sec)

MariaDB [mysql]>

MariaDB [mysql]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [mysql]> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
24 rows in set (0.00 sec)

 

 

 

 

 

 

 

* Web Server(Apache)

1> 개념

- apache 웹 서버는 공개형 웹 서버 프로그램으로써 다양한 플랫폼에서 동작할 수 있도록 설계가 되어있음

- apache 웹 서버는 클라이언트가 웹 브라우저를 통해서 요청한 데이터를 클라이언트 웹 브라우저로 보내는 역할

다시 말하면, 웹 서버는 클라이언트의 요청을 기다리고 있다가 요청을 받게 되면 해당 데이터를 보내는 프로그램

 

2> 특징

- standalone (계속 가동중, 요청 기다림)

 

3> 설정파일

① /etc/httpd/conf/httpd.conf

-httpd의 설정파일

 

31줄 : 웹 서버 설정파일, 바이너리 파일, 로그 파일, 모듈 파일 등이 저장되어 있는 기본 디렉터리를

지정

41줄 : 지정한 IP Address를 80번 포트로 듣겠음

42줄 : 모든 IP Address를 80번 포트로 듣겠음

ex> 포트를 바꾸는 경우는 보통 서버 리뉴얼을 하는 경우 바꿔서 작업하고 작업 완료시 포트를 원래로 바꿔줌

ex> clubbox에 각 메뉴 탭들을 보면 사용하는 web언어와, 포트가 각 메뉴마다 다른 것을 확인 할 수 있다.

=> 41, 42 둘 중 하나만 써야..,

( 참고로 serverTokens 항목이 centOS 6.x이하에는 있었는데 centOS 6에서는 없어짐

ServerTokens

- 오류 및 서버 메시지를 출력되는 서버에 대한 정보를 설정

CentOS 7 에서는 ServerTokens를 사용하기 위해서 별도로 추가를 해야함

ServerSignature on

값의 종류

Full    → 아파치 서버 버전, 운영체제 정보, 모듈 정보

OS    → 아파치 서버 버전, 운영 체제 정보

Major→ 어퍼차 서버의 주 버전    

Min  → 아파치 서버의 모든 버전

Minor→ 아차피 서버의 하위 버전

Prod → 아파치 서버의 정보 )

 

56줄 : 모듈 관련 파일을 httpd.conf 설정파일에 포함하겠음

(ls -l /etc/httpd/conf.modules.d/*.conf   # /conf.modules.d 하위에 모든 파일목록)

 

66, 67줄 : 실행되는 httpd의 사용자 및 그룹 권한을 설정하는 항목

(보안상 nobody로 사용함)

 

69줄은 서버 설정

86줄: 관리자 e-mail 주소를 적어주는 항목

- 웹 문서 로딩시 에러가 발생 했을 경우 에러 페이지에 보여질 관리자 e-mail 주소를 알려줌

 

94줄 : 클라이언트에게 보여줄 호스트 네임을 지정하는 항목 만약 DNS가 없을 시 IP Address

입력해야함

 

101~104줄 : 최상위 디렉터리에 대한 기본 옵션과 권한을 나타내는 설정

AllowOverride 지시자는 어떻게 접근을 허용할 것인지에 대한 설정

Require all denied는 요구하는 모든 것들을 거부하겠음

denied를 granted로 변경하면 허용하겠다라는 의미

 

118줄 : 관리자의 문서        // index.html 관련

- 서버의 웹 문서가 들어있는 경로를 지정

- 참고로 맨 마지막에 /를 추가하지 않음(dir. 티낼 필요 없음!)

- 심볼릭 링크파일이나 alias로 다른 경로를 가르키도록 설정할 수 있음

다시 말해, 웹 문서가 들어있는 경로

// centOS 6.x 버전대와 달리 centOS 7은 123, 130 라인을 추가해줘야..,

 

123~127줄은 /var/www  디렉터리에 대해서 별도로 기본 옵션과 권한을 나타내는 설정

130 ~156줄은 /var/www/html 디렉터리에 대해서 기본 옵션과 권한을 나타내는 설정

143줄 : Options 지시자는 지정한 디렉터리 하위에 모든 파일과 디렉터리를 적용할

접근 제어를 설정

Indexes는 URL(Uniform Resource Locator : 자원 위치 지정자)을 지정한 디렉터리에

index.html과 같은 지정한 파일이 없을 경우 해당 디렉터리의 파일 목록을 보여줌 

FollowSymLinks는 디렉터리내에서 심볼릭 링크의 사용을 허가함

 

② /etc/httpd/conf.d/userdir.conf
(참고로 centOS 6.x (이하)
/etc/httpd/conf/httpd.conf 파일에
포함되어 있음)
- 웹 서버에서 root 이외에 다른 계정으로
홈페이지를 운영할 때 사용자의 웹 문서
디렉터리를 지정하는 곳
- 사용자 계정의 홈 디렉터리를 이용하여
페이지 출력

 

vi /etc/httpd/conf.d/userdir.conf

17줄 : 사용할 사용자 계정을 활성화 또는
비활성화 설정하는 항목

ex)
UserDir disabled
→ 모든 사용자 계정을 비활성화
UserDir disabled 계정명
→ 지정한 사용자 계정을 비활성화
UserDir enabled
→ 모든 사용자 계정을 활성화
UserDir enabled 계정명
→ 지정한 사용자 계정을 활성화
UserDir enabled 계정명1 계정명2
→ 여러 사용자 계정을 활성화

24줄 : 지정한 사용자 계정의 웹
경로로 사용할 기본 디렉터리를 지정하는 항목

 

/etc/httpd/conf.d/autoindex.conf

(참고로 centOS 6.x (이하))

/etc/httpd/conf/httpd.conf 파일에 포함되어 있음

centOS 7.x 버전부터는 기능이 나뉘어서 파일이 분리됨)

- 특정 디렉터리를 주소의 일부 페이지처럼 사용할 수 있게 함

 

21줄 : Alias /icons/

"/usr/share/httpd/icons/"

 

/icons/ 는 fakename

"/usr/share/httpd/icons/" 는 realname

 

fakename은 realname으로 설정된 경로에 있는 index.html의 내용을

마치 웹 페이지 주소처럼 사용하기 위해 속이는 이름

realname은 fakename을 사용해서 내용을 출력하기 위한 실제

index.html 파일이 저장되어 있는 디렉터리

 

VirtualHost(가상 호스트)

(참고로 CentOS6.x(이하)에는

/etc/httpd/conf/httpd.conf 파일에 있었던 내용인데 별도로 작업을 해야함)

 

준비물

/etc/httpd/conf.d 디렉터리 하위에 파일을 생성(파일명은 예를 들면 vhost.conf)

www.miylifebravo.com 외에

cafe.mylifebravo.com을 추가

 

/etc/httpd/conf.d/vhost.conf(이 파일은 우리가 생성한 파일임)

 

1줄 : <VirtuaHost *:80> 또는 <VirtualHost IP Address:80>    // 80 : port no.

2줄 : ServerAdmin 관리자의 e-mail

3줄 : ServerName 사용할 호스트네임

4줄 : DocumentRoot 사용할 디렉터리(웹 문서 경로)

5줄 : ErrorLog  "logs/사용할 로그파일

→ 아파치 웹 서버의 에러로그파일의 위치를 지정함(별도로)

(기본: ls -l /etc/httpd/

lrwxrwxrwx 1 root root  19  2월  2 15:12 logs -> ../../var/log/httpd)

6줄 : CustomLog "logs/사용할 로그파일 (각각 파일명을 지정)

→ 아파치 웹 서버의 웹로그파일 위치를 지정

common(접근정보), agent, referer 정보를 모두 저장하기 위함

7줄 : </VirtuaHost>

 

가상호스트를 사용하면 기존에

DocumentRoot가 가상호스트의 DocumentRoot를 따라가기 때문에

이를 방지하기 위하여 맨 첫줄에 아래와 같이 작업

<VirtuaHost *:80>

</VirtuaHost>

ex)

1 → 2    => 1 → 1

1 → 2

 

위 설정이 다 되었으면 저장 후 종료

 

가상호스트의 DocumentRoot를 생성

생성한 디렉터리 하위에 index.html 생성

생성한 index.html 파일안에 내용 입력

 

/etc/httpd/conf/httpd.conf 파일에

별도로 123줄~127줄처럼 해당 경로를 추가

 

 

 

 

4> 명령어

web server(apache)

서비스명은 httpd.service

 

 

 

 

 

* Web Browser

1> 개념

- 사용자가 웹 서버에게 필요한 데이터를 요청하도록 해주며 웹 서버가 응답하게 되면 데이터를 컴파일을 통해서

사용자에게 보여주는 역할


2> Web Browser의 종류

Windows → Internet Explorer, Edge

Linux → Firefox

Google → Chrome

Apple → Safari

 

3> 관련 용어

Web Server는 80번 포트를 사용(Well-known)

 

HTTP(Hyper Text Transfer Protocol)

- WWW(World Wide Web) 상에서 정보를 주고받을 수 있는 프로토콜.

주로 html 문서를 주고받는데 쓰임.

- 클라이언트와 서버 사이에 이루어지는 요청(Request)/응답(Response) 프로토콜.

 

Web Document(웹 문서 : HTML 문서)

- 웹 문서는 이미지가 포함된 정적인 형태의 html 문서만을 제공함

 

4> 특징

① 정적 웹 서버의 동작 방식

- 기본적으로 apache 웹 서버는 HTML(HyperText Markup Language)과 같은 정적인 데이터만 처리하게 됨

- 정적이라고 하는 것은 접속 후 데이터를 요청할 때마다 똑같은(변하지 않음) 데이터만 보낸다는 것을 의미

- 호출한 파일을 클라이언트로 가지고 와서 실행함

CSSL(Client Side Script Language) : html, java scripts

- 보안상 취약

- 누구든지 다 볼 수 있음

 

② 동적 웹 서버의 동작 방식

- 동적인 데이터를 처리하기 위해서 웹 스크립트 언어인 C, ASP(Active Server Page), PHP(Personal

Hypertext Preprocessor), JSP(Pava Server Page), Python, Perl 등

 

모듈(Module)은 '전체를 다루는 일부'라고 의미를 둘 수 있음

- 프로그램 내부적으로 하나의 종합된 동작을 하도록 작은 부분을 분할함

더 찾아봥~!

 

- 호출한 파일을 서버에서 실행시켜서 실행 결과 값을 가져옴

 

- 호출한 파일을 서버에서 실행시켜서 실행 결과 값을 가져옴

SSSL(Server Side Script Language) : asp, php 등등

- 보안상 강함

- 나 혼자 보는 것

 

(참고로 Linux는 웹 서버는 Apache, FTP 서버는 vsftpd 사용함

Windows Server는 IIS(Internet Information Service)를 사용함

IIS가 웹 서버와 FTP Server를 포함하고 있음)

 

ex>

사용자들이 naver 요청하면 모두 같은 웹 브라우저를 보게됨 → 정적

여기서 로그인을 하면 모두 다른 화면이 나옴. 나혼자 보는 것→ 동적

인터넷 키면, 웹서버(Apache), DNS, DB 등 같이 구동중..,

 

// ② UserDir.conf 설정 (/etc/httpd/conf.d/userdir.conf 17, 24줄 )


# systemctl restart named.service
# systemctl restart httpd.service

# vi /etc/httpd/conf.d/userdir.conf
     17     UserDir enabled bonwon
 
     24     UserDir public_html

// 준비물 셋팅
[root@junga ~]# cp -r /etc/skel /userdirskel
[root@junga ~]#
[root@junga ~]# mkdir /userdirskel/public_html
[root@junga ~]#
[root@junga ~]# ls -la /userdirskel
합계 16
drwxr-xr-x   4 root root   97  2월  6 13:07 .
dr-xr-xr-x. 22 root root 4096  2월  6 13:07 ..
-rw-r--r--   1 root root   18  2월  6 13:07 .bash_logout
-rw-r--r--   1 root root  193  2월  6 13:07 .bash_profile
-rw-r--r--   1 root root  231  2월  6 13:07 .bashrc
drwxr-xr-x   4 root root   39  2월  6 13:07 .mozilla
drwxr-xr-x   2 root root    6  2월  6 13:07 public_html
[root@junga ~]#
[root@junga ~]# useradd -m -k /userdirskel bonwon
[root@junga ~]#
[root@junga ~]# ls -la /home/bonwon
합계 12
drwx------  4 bonwon bonwon  97  2월  6 13:08 .
drwxr-xr-x. 4 root   root    34  2월  6 13:08 ..
-rw-r--r--  1 bonwon bonwon  18  2월  6 13:07 .bash_logout
-rw-r--r--  1 bonwon bonwon 193  2월  6 13:07 .bash_profile
-rw-r--r--  1 bonwon bonwon 231  2월  6 13:07 .bashrc
drwxr-xr-x  4 bonwon bonwon  39  2월  6 13:07 .mozilla
drwxr-xr-x  2 bonwon bonwon   6  2월  6 13:07 public_html
[root@junga ~]#
[root@junga ~]# systemctl restart httpd.service
[root@junga ~]#
[root@junga ~]# touch /home/bonwon/public_html/index.html
[root@junga ~]#
[root@junga ~]# vi /home/bonwon/public_html/index.html
Hello~ This is UserDir Page!!! :)

[root@junga ~]#
[root@junga ~]# ls -l /home/bonwon/public_html/
합계 4
-rw-r--r-- 1 root root 34  2월  6 13:13 index.html
[root@junga ~]#

// 파이어 폭스
http://www.mylifebravo.com/~bonwon
      -------
=> NOT FOUND

# systemctl restart httpd.service

// 허가권 변경
[root@junga ~]# ls -ld /home/bonwon/
drwx------ 4 bonwon bonwon 97  2월  6 13:08 /home/bonwon/
[root@junga ~]#
[root@junga ~]#
[root@junga ~]# chmod 711 /home/bonwon
[root@junga ~]#
[root@junga ~]# ls -ld /home/bonwon/
drwx--x--x 4 bonwon bonwon 97  2월  6 13:08 /home/bonwon/

// 파이어 폭스
http://www.mylifebravo.com/~bonwon
      -------

=> Forbidden

[root@junga ~]# chmod 711 /home/bonwon
[root@junga ~]#
[root@junga ~]# ls -ld /home/bonwon/
drwx--x--x 4 bonwon bonwon 97  2월  6 13:08 /home/bonwon/

[root@junga ~]# ls -l /etc/httpd/conf.d
합계 20
-rw-r--r-- 1 root root  366 10월 20 05:39 README
-rw-r--r-- 1 root root 2926 10월 20 05:39 autoindex.conf
-rw-r--r-- 1 root root  323 10월 20 01:44 manual.conf
-rw-r--r-- 1 root root 1257  2월  6 13:07 userdir.conf
-rw-r--r-- 1 root root  824 10월 20 01:44 welcome.conf

 

// ③ Alias dir.설정 (/etc/httpd/conf.d/autoindex.conf)

# vi /etc/httpd/conf.d/autoindex.conf

     21 Alias /icons/ "/usr/share/httpd/icons/"
     22 Alias /itbank/ "/a/b/c/"
     23
     24 <Directory "/usr/share/httpd/icons">
     25     Options Indexes MultiViews FollowSymlinks
     26     AllowOverride None
     27     Require all granted
     28 </Directory>
     29 <Directory "/a/b/c">            // 복사 후 dir 명만 변경
     30     Options Indexes MultiViews FollowSymlinks
     31     AllowOverride None
     32     Require all granted
     33 </Directory>

[root@junga ~]# mkdir -p /a/b/c
[root@junga ~]#
[root@junga ~]# touch /a/b/c/index.html
[root@junga ~]#
[root@junga ~]# vi /a/b/c/index.html
[root@junga ~]#
[root@junga ~]# systemctl restart httpd.service

 

// virtual host 실습

// 준비물 셋팅

[root@junga ~]# ls -l /etc/httpd/conf.d
합계 20
-rw-r--r-- 1 root root  366 10월 20 05:39 README
-rw-r--r-- 1 root root 3077  2월  6 13:44 autoindex.conf
-rw-r--r-- 1 root root  323 10월 20 01:44 manual.conf
-rw-r--r-- 1 root root 1257  2월  6 13:07 userdir.conf
-rw-r--r-- 1 root root  824 10월 20 01:44 welcome.conf
[root@junga ~]#
[root@junga ~]# touch /etc/httpd/conf.d/vhost.conf
[root@junga ~]#
[root@junga ~]# ls -l /etc/httpd/conf.d
합계 20
-rw-r--r-- 1 root root  366 10월 20 05:39 README
-rw-r--r-- 1 root root 3077  2월  6 13:44 autoindex.conf
-rw-r--r-- 1 root root  323 10월 20 01:44 manual.conf
-rw-r--r-- 1 root root 1257  2월  6 13:07 userdir.conf
-rw-r--r-- 1 root root    0  2월  6 13:55 vhost.conf
-rw-r--r-- 1 root root  824 10월 20 01:44 welcome.conf
[root@junga ~]#

[root@junga ~]# vi /var/named/mylife.for.zone
    cafe IN A 192.168.46.90            // 추가

[root@junga ~]#
[root@junga ~]# systemctl restart named.service
[root@junga ~]#
[root@junga ~]# nslookup
> cafe.mylifebravo.com
Server:  192.168.46.90
Address: 192.168.46.90#53

Name: cafe.mylifebravo.com
Address: 192.168.46.90
> exit

[root@junga ~]#

// 파이어폭스 방문기록 전체 삭제

// 파이어 폭스 2개 켜서

http://www.mylifebravo.com/
http://cafe.mylifebravo.com/

// vhost.conf 설정

# vi /etc/httpd/conf.d/vhost.conf 
      1 <VirtualHost *:80>
      2 </VirtualHost>
      3
      4 <VirtualHost *:80>
      5         ServerAdmin     root@mylifebravo.com
      6         ServerName      cafe.mylifebravo.com
      7         DocumentRoot  /c/a/f/e
      8         ErrorLog           "logs/mlb_error_log"
      9         CustomLog       "logs/mlb_access_log" combined
     10 </VirtualHost>

// 아파치 설정파일 설정

# vi /etc/httpd/conf/httpd.conf

    123 <Directory "/web/server">
    124     AllowOverride None
    125     # Allow open access:
    126     Require all granted
    127 </Directory>
    128
    129 <Directory "/c/a/f">
    130     AllowOverride None
    131     # Allow open access:
    132     Require all granted
    133 </Directory>

[root@junga ~]# systemctl restart httpd.service
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
[root@junga ~]#

[root@junga ~]# systemctl -l status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 화 2018-02-06 14:24:21 KST; 1min 27s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 6120 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
  Process: 6119 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
 Main PID: 6119 (code=exited, status=1/FAILURE)

 2월 06 14:24:21 junga.kgitbank systemd[1]: Starting The Apache HTTP Server...
 2월 06 14:24:21 junga.kgitbank httpd[6119]: httpd: Syntax error on line 357 of /etc/httpd/conf/httpd.conf: Syntax error on line 10 of /etc/httpd/conf.d/vhost.conf: Expected </VirtualHost> but saw </VirtuaHost>
 2월 06 14:24:21 junga.kgitbank systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
 2월 06 14:24:21 junga.kgitbank kill[6120]: kill: cannot find process ""
 2월 06 14:24:21 junga.kgitbank systemd[1]: httpd.service: control process exited, code=exited status=1
 2월 06 14:24:21 junga.kgitbank systemd[1]: Failed to start The Apache HTTP Server.
 2월 06 14:24:21 junga.kgitbank systemd[1]: Unit httpd.service entered failed state.
 2월 06 14:24:21 junga.kgitbank systemd[1]: httpd.service failed.

[root@junga ~]# vi /etc/httpd/conf.d/vhost.conf

=> 오타 수정

[root@junga ~]# systemctl restart httpd.service

반응형
LIST

'BigData_Off1 > 리눅스2' 카테고리의 다른 글

2018.02.07-20일차 DB  (0) 2018.02.07
2018.02.05-18일차 Web Server  (0) 2018.02.05
DNS 2(slave DNS), Web Server  (0) 2018.02.02
2018.01.30 ~ 02.02-14-17일차 DNS(개념, 실습1-4)  (0) 2018.01.30
Autofs 2(① autofs 2nd, ② 실습1)  (0) 2018.01.29
Posted by 오정oI
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함