Chapter 13. DB 서버와 웹 서버
00. 개요 01. 데이터베이스 02. MariaDB 설치와 사용 03. 웹 서버 설치와 사용
데이터베이스가 무엇인지 설명할 수 있다. 관계형 데이터베이스와 관련된 용어를 이해하고 설명할 수 있다. 기본적인 SQL 문법을 이해하고 사용할 수 있다. MariaDB를 설치할 수 있다. MariaDB에서 데이터베이스와 테이블을 생성하고, 데이터를 입력 및 검색할 수 있다. 아파치 웹 서버를 설치하고 외부에서 접속하도록 설정할 수 있다. 시스템 디렉터리와 사용자 디렉터리에 웹 사이트를 구축할 수 있다. APM이 연동하도록 설치할 수 있다. 공개 게시판을 설치하고 웹 사이트에 연결할 수 있다.
리눅스 실습 스터디 맵
00 개요 [그림 13-1] 13장의 내용 구성
01 데이터베이스 관계형 데이터베이스의 기본 개념 데이터베이스: 서로 관련성을 가진 데이터들을 데이터 간의 중복성을 최소화해서 체계적으로 모아놓은 것 관계형 데이터베이스는 데이터를 테이블(표)로 표현 관계형 데이터베이스 관련 용어 데이터 : 각 항목에 저장되는 값이다. 테이블 : 데이터를 체계화하여 행과 열의 형태로 구성한 것으로 테이블 이름을 붙인다. 데이터베이스 : 관련 있는 데이터를 체계적으로 저장한 것으로 데이터는 테이블 형태로 저장된다. 데이터베이스 에는 하나 이상의 테이블이 있을 수 있다. 데이터베이스 이름을 붙인다. 필드 : 테이블의 열을 의미하며 칼럼이라고도 한다. 레코드 : 테이블에 저장한 한 행의 정보를 의미하며 터플(tuple)이라고도 한다. 한 행에는 여러 필드의 값이 저장 될 수 있다. 키 : 레코드를 구성하는 필드에서 각 레코드를 구분할 수 있는 필드 값을 뜻한다. 예를 들어 학생 데이터를 구성 하는 레코드라면 학번 필드가 키가 될 수 있다. 키로 선택된 필드의 값은 중복될 수 없다. 키는 기본 키(primary key)와 그 외 다른 키들이 있을 수 있다.
01 데이터베이스 관계형 데이터베이스의 예 학생 데이터베이스: 학생 신상 데이터와 성적 데이터
01 데이터베이스 SQL의 기초 SQL(structured query language) 관계형 데이터베이스를 생성, 테이블 생성, 데이터 입력/삭제/수정 등 데이터베이스 관련 SQL 1 데이터베이스 보기 : 기존에 있는 데이터베이스의 목록을 출력 show databases; 2 데이터베이스 생성 : 새로운 데이터베이스를 생성 create database 데이터베이스 이름; 예 create database st_db; 3 데이터베이스 삭제 : 지정한 데이터베이스를 삭제 drop database 데이터베이스 이름; 4 사용할 데이터베이스 지정 use 데이터베이스 이름;
01 데이터베이스 테이블 관련 SQL 1 테이블 보기 : 현재 데이터베이스에 있는 테이블의 목록을 출력 show tables; 2 테이블 생성 : 새로운 테이블을 생성 create table 테이블 이름(필드명 1 필드 자료형 1, 필드명 2 필드 자료형 2,...); create table st_info (ST_ID int, NAME varchar(20), DEPT varchar(25));
01 데이터베이스 테이블 관련 SQL 3 테이블 구조 보기 : 지정한 테이블의 구조를 출력 explain 테이블 이름; 4 explain 테이블 이름; alter table 테이블 이름 수정 명령; 테이블에 필드 추가 : alter table 테이블 이름 add 필드명 자료형 예 : alter table st_info add AGE int; 필드의 자료형 변경 : alter table 테이블 이름 modify 필드명 자료형 예 : alter table st_info modify AGE float; 필드 삭제 : alter table 테이블 이름 drop column 필드명 예 : alter table st_info drop column AGE; 기본 키 추가 : alter table 테이블 이름 add constraint 제약 조건명 primary key (필드명) 예 : alter table st_info add constraint pk_stinfo primary key (ST_ID); 제약 조건명은 사용자가 정하면 된다. 처음 테이블을 생성하면서 기본 키를 지정할 때 다음과 같이 한다. 예 : create table st_info (ST_ID int Not NULL primary key, NAME varchar(20), DEPT varchar(25)); 5 테이블 삭제 : 지정한 테이블을 삭제 drop table 테이블 이름;
01 데이터베이스 레코드 삽입 삭제 수정 관련 SQL 1 레코드 삽입 : 테이블에 새로운 레코드를 추가 insert into 테이블 이름 values (값 1, 값 2,...); 예 : insert into st_info values (2010401, 이길동, Game ); 2 레코드 수정 : 기존 레코드를 수정 update 테이블 이름 set 필드명 1=수정할 값 1, 필드명 2=수정할 값 2,... where 조건; 예 : update st_info set DEPT= Computer where ST_ID=201403; 3 레코드 삭제 : 테이블에서 해당 레코드를 삭제 delete from 테이블 이름 where 조건; 예 : delete from st_info where ST_ID=201403;
01 데이터베이스 레코드 검색하기 select 필드명 1, 필드명 2,... from 테이블 이름 where 조건; select * from st_info; select NAME from st_info where ST_ID=201401; select Linux, DB from st_grade where ST_ID=201401; select st_info.name, st_grade.linux from st_info, st_grade where st_info.st_id=201401 and st_grade.st_id=201401; 접근 권한 부여하기 시스템 관리자가 데이터베이스를 만들고 일반 사용자들이 사용하도록 설정해야 할 때 grant 문을 사용 grant all privileges on DB명.* to 사용자 계정@localhost identified by '패스워드'; 예 : grant all privileges on st_db.* to user1@localhost identified by '123456';
02 MariaDB 설치와 사용 데이터베이스는 MySQL대신 MariaDB 사용 MariaDB 설치하고 활성화하기 1 MariaDB를 설치하려면 먼저 리포지터리를 추가로 등록 user1@myubuntu:~$ sudo apt-get install software-properties-common 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 (생략) software-properties-common (0.92.28) 설정하는 중입니다... software-properties-gtk (0.92.28) 설정하는 중입니다... user1@myubuntu:~$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db (생략) user1@myubuntu:~$ sudo add-apt-repository 'deb http://ftp.kaist.ac.kr/mariadb/rep o/5.5/ubuntu saucy main' user1@myubuntu:~$ sudo apt-get update (생략)
02 MariaDB 설치와 사용 MariaDB 설치하기 user1@myubuntu:~$ sudo apt-get install mariadb-server 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입니다... 완료 다음 패키지를 더 설치할 것입니다: libaio1 libdbd-mysql-perl libdbi-perl libhtml-template-perl libmariadbclient18 libmysqlclient18 mariadb-client-5.5 mariadb-client-core-5.5 mariadb-common mariadb-server-5.5 mariadb-server-core-5.5 mysql-common (생략)
02 MariaDB 설치와 사용 MariaDB 활성화하기 MariaDB 서버의 데몬은 mysqld user1@myubuntu:~$ ps -ef grep mysql root 12720 1 0 21:33? 00:00:00 /bin/bash /usr/bin/mysqld_safe mysql 13349 12720 6 21:33? 00:00:04 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --pidfile=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 root 13350 12720 0 21:33? 00:00:00 logger -t mysqld -p daemon.error user1 13571 3037 0 21:34 pts/5 00:00:00 grep --color=auto mysql user1@myubuntu:~$
02 MariaDB 설치와 사용 MariaDB 사용하기 MariaDB의 기본 프롬프트는 MariaDB [(none)]> user1@myubuntu:~$ mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or g. Your MariaDB connection id is 35 Server version: 5.5.36-MariaDB-1~saucy-log mariadb.org binary distribution Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others. Type 'help;' or ' h' for help. Type ' c' to clear the current input statement. MariaDB [(none)]> 데이터베이스 목록 확인하기: show databases MariaDB [(none)]> show databases; +-----------------------+ Database +-----------------------+ information_schema mysql performance_schema +-----------------------+ 3 rows in set (0.00 sec) MariaDB [(none)]>
02 MariaDB 설치와 사용 데이터베이스 생성하기 MariaDB [(none)]> create database st_db; Query OK, 1 row affected (0.01 sec) MariaDB [(none)]> show databases; +----------------------+ Database +----------------------+ information_schema mysql performance_schema st_db +----------------------+ 4 rows in set (0.01 sec) MariaDB [(none)]> 데이터베이스 사용하기 MariaDB [(none)]> use st_db; Database changed MariaDB [st_db]>
02 MariaDB 설치와 사용 테이블 확인하기 MariaDB [st_db]> show tables; Empty set (0.00 sec) MariaDB [st_db]> 테이블 생성하기 학생 신상 정보 테이블(st_info)을 생성: default charset=utf8 을 추가 MariaDB [st_db]> create table st_info (ST_ID int, NAME varchar(20), DEPT varchar(25)) default charset=utf8; Query OK, 0 rows affected (0.92 sec) MariaDB [st_db]> 학생 성적 테이블(st_grade)을 생성 MariaDB [st_db]> create table st_grade (ST_ID int, Linux int, DB int); Query OK, 0 rows affected (0.20 sec) MariaDB [st_db]>
02 MariaDB 설치와 사용 생성한 테이블 확인하기 MariaDB [st_db]> show tables; +-----------------+ Tables_in_st_db +-----------------+ st_grade st_info +-----------------+ 2 rows in set (0.00 sec) MariaDB [st_db]>
02 MariaDB 설치와 사용 테이블 구조 확인하기 MariaDB [st_db]> explain st_info; +---------+-----------------+---------+-------+-------------+----------+ Field Type Null Key Default Extra +---------+-----------------+---------+-------+-------------+----------+ ST_ID int(11) YES NULL NAME varchar(20) YES NULL DEPT varchar(25) YES NULL +---------+-----------------+---------+-------+-------------+----------+ 3 rows in set (0.22 sec) MariaDB [st_db]> explain st_grade; +---------+-----------------+---------+-------+-------------+----------+ Field Type Null Key Default Extra +---------+-----------------+---------+-------+-------------+----------+ ST_ID int(11) YES NULL Linux int(11) YES NULL DB int(11) YES NULL +---------+-----------------+---------+-------+-------------+----------+ 3 rows in set (0.00 sec) MariaDB [st_db]>
02 MariaDB 설치와 사용 기본 키 추가하기 ST_ID 필드를 기본 키로 설정 1 Null 값을 허용하지 않도록 먼저 수정 MariaDB [st_db]> alter table st_info modify ST_ID int Not Null; Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> alter table st_grade modify ST_ID int Not Null; Query OK, 0 rows affected (0.17 sec) Records: 0 Duplicates: 0 Warnings: 0 MariaDB [st_db]> 2 ST_ID 필드를 기본 키로 설정 MariaDB [st_db]> alter table st_info add constraint pk_stinfo primary key (ST_ID); Query OK, 0 rows affected (1.00 sec) Records: 0 Duplicates: 0 Warnings: 0 MariaDB [st_db]> alter table st_grade add constraint pk_stgrade primary key (ST_ID); Query OK, 0 rows affected (1.40 sec) Records: 0 Duplicates: 0 Warnings: 0 MariaDB [st_db]>
02 MariaDB 설치와 사용 기본 키 추가 여부 확인 MariaDB [st_db]> explain st_info; +---------+-----------------+---------+-------+-------------+----------+ Field Type Null Key Default Extra +---------+-----------------+---------+-------+-------------+----------+ ST_ID int(11) NO PRI NULL NAME varchar(20) YES NULL DEPT varchar(25) YES NULL +---------+-----------------+---------+-------+-------------+----------+ 3 rows in set (0.22 sec) MariaDB [st_db]> explain st_grade; +---------+-----------------+---------+-------+-------------+----------+ Field Type Null Key Default Extra +---------+-----------------+---------+-------+-------------+----------+ ST_ID int(11) NO PRI NULL Linux int(11) YES NULL DB int(11) YES NULL +---------+-----------------+---------+-------+-------------+----------+ 3 rows in set (0.00 sec) MariaDB [st_db]>
02 MariaDB 설치와 사용 레코드 입력하기 MariaDB [st_db]> insert into st_info values (201401, '이길동', 'Game'); Query OK, 1 row affected, 1 warning (0.08 sec) MariaDB [st_db]> insert into st_info values (201402, '김길동', 'Computer'); Query OK, 1 row affected, 1 warning (0.04 sec) MariaDB [st_db]> insert into st_info values (201403, '홍길동', 'Game'); Query OK, 1 row affected, 1 warning (0.02 sec) MariaDB [st_db]> insert into st_grade values (201401, 90, 80); Query OK, 1 row affected (0.06 sec) MariaDB [st_db]> insert into st_grade values (201402, 70, 95); Query OK, 1 row affected (0.01 sec) MariaDB [st_db]l> insert into st_grade values (201403, 80, 65); Query OK, 1 row affected (0.00 sec) MariaDB [st_db]>
02 MariaDB 설치와 사용 레코드 검색하기 1 테이블의 전체 레코드 검색 : st_info 테이블의 전체 레코드를 출력 MariaDB [st_db]> select * from st_info; +------------+-----------+--------------+ ST_ID NAME DEPT +------------+-----------+--------------+ 201401 이길동 Game 201402 김길동 Computer 201403 홍길동 Game +------------+-----------+--------------+ 3 rows in set (0.00 sec) MariaDB [st_db]> 2 학번이 201401인 학생의 이름과 학과를 검색 MariaDB [st_db]> select NAME, DEPT from st_info where ST_ID=201401; +-----------+-----------+ NAME DEPT +-----------+-----------+ 이길동 Game +-----------+-----------+ 1 row in set (0.01 sec) MariaDB [st_db]>
02 MariaDB 설치와 사용 레코드 검색하기 3 학번이 201401인 학생의 리눅스 성적을 검색 MariaDB [st_db]> select Linux from st_grade where ST_ID=201401; +----------+ Linux +----------+ 90 +----------+ 1 row in set (0.00 sec) MariaDB [st_db]> 4 학번이 201401인 학생의 이름과 학과, DB 성적을 한 번에 검색 MariaDB [st_db]> select st_info.name, st_info.dept, st_grade.db -> from st_info, st_grade -> where st_info.st_id=201401 and st_grade.st_id=201401; +-----------+---------+--------+ NAME DEPT DB +-----------+---------+--------+ 이길동 Game 80 +-----------+---------+--------+ 1 row in set (0.03 sec) MariaDB [st_db]>
02 MariaDB 설치와 사용 데이터 수정하기 예를 들어 학번이 201401인 학생의 DB 성적을 80점에서 90점으로 수정 MariaDB [st_db]> update st_grade set DB=90 where ST_ID=201401; Query OK, 1 row affected (0.10 sec) Rows matched: 1 Changed: 1 Warnings: 0 MariaDB [st_db]> select * from st_grade where ST_ID=201401; +-----------+----------+---------+ ST_ID Linux DB +-----------+----------+---------+ 201401 90 90 +-----------+----------+---------+ 1 row in set (0.01 sec) MariaDB [st_db]>
02 MariaDB 설치와 사용 MariaDB 관리하기
02 MariaDB 설치와 사용 MariaDB 상태 정보 출력하기 user1@myubuntu:~$ mysqladmin -u root -p status Enter password: Uptime: 2141 Threads: 1 Questions: 591 Slow queries: 0 Opens: 337 Flush tables: 4 Open tables: 24 Queries per second avg: 0.276 user1@myubuntu:~$ 상태 정보로 출력되는 주요 항목 Uptime : 서버가 동작한 시간을 초 단위로 표시 Threads : 현재 동작 중인 MariaDB 서버 스레드 수 Questions : 서버가 동작한 이후 처리한 질의 수 Slow queries : 일정 시간보다 처리 시간이 길어진 질의 수 Opens : 서버가 열었던 테이블 수 Flush : flush, refresh, reload 명령을 수행한 횟수 Open tables : 현재 열려 있는 테이블 수
02 MariaDB 설치와 사용 MariaDB 버전 정보 출력하기 user1@myubuntu:~$ mysqladmin -u root -p version Enter password: mysqladmin Ver 9.0 Distrib 5.5.36-MariaDB, for debian-linux-gnu on i686 Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others. Server version 5.5.36-MariaDB-1~saucy-log Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 36 min 40 sec Threads: 1 Questions: 592 Slow queries: 0 Opens: 337 Flush tables: 4 Open tables: 24 Queries per second avg: 0.269 user1@myubuntu:~$
02 MariaDB 설치와 사용 MariaDB 서버 암호 설정하기 user1@myubuntu:~$ mysqladmin -u root -p password '123456' Enter password: user1@myubuntu:~$
03 웹 서버 설치와 사용 아파치 설치하고 활성화하기 user1@myubuntu:~$ sudo apt-get install apache2 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입니다... 완료 다음 패키지를 더 설치할 것입니다: apache2-bin apache2-data libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap (생략) libc-bin에 대한 트리거를 처리하는 중입니다... ufw에 대한 트리거를 처리하는 중입니다... ureadahead에 대한 트리거를 처리하는 중입니다... user1@myubuntu:~$
03 웹 서버 설치와 사용 아파치 활성화하기 서비스의 이름은 apache2 독자형으로 동작하는 데몬이므로 service 명령으로 시작 user1@myubuntu:~$ sudo service apache2 start * Starting web server apache2 * user1@myubuntu:~$ ps -ef grep apache root 14693 1 0 22:22? 00:00:00 /usr/sbin/apache2 -k start www-data 14696 14693 0 22:22? 00:00:00 /usr/sbin/apache2 -k start www-data 14697 14693 0 22:22? 00:00:00 /usr/sbin/apache2 -k start user1 14847 3037 0 22:27 pts/5 00:00:00 grep --color=auto apache user1@myubuntu:~$
03 웹 서버 설치와 사용 웹 서버 접속하기 윈도의 웹 브라우저에서 http://ip주소 를 입력하여 접속 [그림 13-3] 아파치 웹 서버 초기 화면
03 웹 서버 설치와 사용 내가 만든 웹 페이지 띄우기 현재 웹 서버의 기본 디렉터리는 /var/www vi로 작성하여 index.html로 저장 user1@myubuntu:~$ cd /var/www user1@myubuntu:/var/www$ ls index.html user1@myubuntu:/var/www$ sudo vi index.html <html> <head> <title>html test</title> </head> <body> My First Web Page!!! </body> </html> :wq user1@myubuntu:/var/www$
03 웹 서버 설치와 사용 내가 만든 웹 페이지 띄우기 [그림 13-4] 웹 페이지 출력 화면
03 웹 서버 설치와 사용 일반 사용자 계정을 위한 웹 설정하기 웹 설정과 관련된 파일은 /etc/apache2/mods-available/userdir.conf 파일 1 vi로 /etc/apache2/mods-available/userdir.conf 파일을 열어 다음과 같이 수정 user1@myubuntu:/etc/apache2/mods-available$ sudo vi userdir.conf (생략) <IfModule mod_userdir.c> UserDir public_html #UserDir disabled root 앞에 #를 추가한다. <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS> Require all granted </Limit> <LimitExcept GET POST OPTIONS> Require all denied </LimitExcept> </Directory> </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet ~ :wq user1@myubuntu:/etc/apache2/mods-available$
03 웹 서버 설치와 사용 일반 사용자 계정을 위한 웹 설정하기 2 mods-available 디렉터리의 userdir.conf 파일과 userdir.load 파일을 mods-enabled 디렉터리에서 심벌릭 링 크로 연결 user1@myubuntu:/etc/apache2/mods-available$ cd../mods-enabled user1@myubuntu:/etc/apache2/mods-enabled$ sudo ln -s../mods-available/ userdir.conf user1@myubuntu:/etc/apache2/mods-enabled$ sudo ln -s../mods-available/ userdir.load user1@myubuntu:/etc/apache2/mods-enabled$ 3 설정 파일이 변경되었으므로 apache2 서비스를 다시 동작 user1@myubuntu:/etc/apache2/mods-enabled$ sudo service apache2 restart * Restarting web server apache2 AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message [ OK ] user1@myubuntu:/etc/apache2/mods-enabled$ 4 사용자 홈 디렉터리에서 public_html 디렉터리 생성 user1@myubuntu:/etc/apache2/mods-enabled$ cd user1@myubuntu:~$ mkdir pubic_html
03 웹 서버 설치와 사용 일반 사용자 계정에서 웹 페이지 작성하기 1 public_html 디렉터리 아래에 index.html 파일을 생성 user1@myubuntu:~$ cd public_html user1@myubuntu:~/public_html$ vi index.html<html> <head> <title>html test</title> </head> <body> User1 Web Page!!! </body> </html> :wq user1@myubuntu:~/public_html$ 2 웹 브라우저에서 html 문서를 확인: http://웹서버주소/~사용자계정 http://192.168.0.2/~user1
03 웹 서버 설치와 사용 일반 사용자 계정에서 웹 페이지 작성하기 3 브라우저에서 확인 [그림 13-6] 사용자 웹 페이지 출력 화면
03 웹 서버 설치와 사용 APM 설치하기 웹 서버 아파치와 웹 프로그래밍 언어인 PHP, 데이터베이스인 MySQL(MariaDB)를 묶어서 APM APM을 연동하기 위해 설치해야 할 PHP 패키지는 php5, php5-gd, php5-mysql user1@myubuntu:~$ sudo apt-get install php5 php5-gd php5-mysql 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입니다... 완료 다음 패키지를 더 설치할 것입니다: libapache2-mod-php5 php5-cli php5-common php5-readline 제안하는 패키지: php-pear php5-json php5-user-cache (생략) apache2_invoke: Enable module php5 * Restarting web server apache2 AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message [ OK ] php5 (5.5.3+dfsg-1ubuntu2.2) 설정하는 중입니다... user1@myubuntu:~$
03 웹 서버 설치와 사용 PHP의 동작 확인하기 PHP의 동작을 확인하기 위해 /var/www에 다음 파일 작성 user1@myubuntu:~$ cd /var/www user1@myubuntu:/var/www$ sudo vi phpinfo.php <?php phpinfo();?> :wq user1@myubuntu:/var/www$
03 웹 서버 설치와 사용 PHP의 동작 확인하기 웹 브라우저에서 http://ip 주소/phpinfo.php로 접속 [그림 13-8] PHP 동작 확인 화면
03 웹 서버 설치와 사용 게시판 설치하기(그누보드) 1 그누보드 다운로드: 리눅스에서 웹 브라우저를 실행하여 그누보드 사이트(sir.co.kr)에 접속하여 다운로드 [그림 13-9] 그누보드 최신 버전 다운로드 화면
03 웹 서버 설치와 사용 게시판 설치하기(그누보드) 2 내려받은 파일을 /var/www로 복사 user1@myubuntu:/var/www$ sudo cp ~user1/다운로드/g5-5.0b29.tar.gz. user1@myubuntu:/var/www$ 3 tar로 묶고 압축된 파일이므로 압축을 푼다. user1@myubuntu:/var/www$ sudo tar xvzf g5-5.0b29.tar.gz (생략) g5-5.0b29/skin/visit/basic/ g5-5.0b29/skin/visit/basic/style.css g5-5.0b29/skin/visit/basic/visit.skin.php g5-5.0b29/tail.php g5-5.0b29/tail.sub.php g5-5.0b29/_common.php g5-5.0b29/_head.php g5-5.0b29/_tail.php pax_global_header user1@myubuntu:/var/www$
03 웹 서버 설치와 사용 게시판 설치하기(그누보드) 4 그누보드가 사용할 데이터베이스를 구축 user1@myubuntu:/var/www$ sudo mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or g. Your MariaDB connection id is 49 Server version: 5.5.36-MariaDB-1~saucy-log mariadb.org binary distribution Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others. Type 'help;' or ' h' for help. Type ' c' to clear the current input statement. MariaDB [(none)]> create database gnu; Query OK, 1 row affected (0.03 sec) MariaDB [(none)]> exit Bye user1@myubuntu:/var/www$
03 웹 서버 설치와 사용 게시판 설치하기(그누보드) 5 윈도에서 웹 브라우저로 접속하여 설정: http://ip 주소/g5-5.0b29 -> 그누보드5 설치하기 [그림 13-10] 그누보드 설치 : DB 설정오류 화면
03 웹 서버 설치와 사용 게시판 설치하기(그누보드) 6 그누보드5 설치하기 를 클릭 -> data 디렉터리를 만들고 접근 권한을 707로 수정 [그림 13-11] 그누보드5 설치 : data 디렉터리 생성 user1@myubuntu:/var/www$ cd g5-5.0b29/ user1@myubuntu:/var/www/g5-5.0b29$ sudo mkdir data user1@myubuntu:/var/www/g5-5.0b29$ sudo chmod 707 data user1@myubuntu:/var/www/g5-5.0b29$
03 웹 서버 설치와 사용 게시판 설치하기(그누보드) 7 접근 권한을 조정한 후 브라우저에서 새로 고침: 라이선스에 동의 [그림 13-12] 그누보드5 설치 : 라이선스 확인
03 웹 서버 설치와 사용 게시판 설치하기(그누보드) 8 MariaDB에 설정한 DB 정보와 그누보드 관리자 정보를 입력 MariaDB [(none)]> grant all privileges on gnu.* to gnuser@localhost identified by '123456'; Query OK, 0 rows affected (0.14 sec) MariaDB [(none)]> [그림 13-13] 그누보드5 설치 : DB 정보 설정
03 웹 서버 설치와 사용 게시판 설치하기(그누보드) 9 그누보드 설치가 완료되었다. 새로운 그누보드5로 이동 을 클릭 [그림 13-14] 그누보드5 설치 : 설치 완료
03 웹 서버 설치와 사용 게시판 설치하기(그누보드) 10 메인 화면 [그림 13-15] 그누보드5 설치 : 그누보드 메인 화면
03 웹 서버 설치와 사용 웹 페이지에 게시판 연결하기-게시판 생성 1 admin 계정으로 로그인한 다음 관리자 모드 를 클릭 [그림 13-16] 그누보드 사용 : admin 로그인 화면
03 웹 서버 설치와 사용 웹 페이지에 게시판 연결하기-게시판 생성 2 게시판 그룹을 생성: 게시판 관리 를 클릭 -> 게시판 그룹 관리 를 선택 [그림 13-17] 그누보드 사용 : 게시판 그룹설정
03 웹 서버 설치와 사용 웹 페이지에 게시판 연결하기-게시판 생성 3 게시판 그룹을 추가하기 위해 관리 화면에서 오른쪽의 게시판 그룹 추가 를 클릭 [그림 13-18] 그누보드 사용 : 게시판 그룹 생성
03 웹 서버 설치와 사용 웹 페이지에 게시판 연결하기-게시판 생성 4 게시판 그룹 생성이 완료되면 게시판 생성 버튼이 표시된다. 이 버튼을 클릭하면 게시판 생성 화면이 출력 [그림 13-19] 그누보드 사용 : 게시판 생성 버튼 클릭
03 웹 서버 설치와 사용 웹 페이지에 게시판 연결하기-게시판 생성 5 게시판의 여러 속성을 설정하는 항목 [그림 13-20] 그누보드 사용 : 게시판 생성
03 웹 서버 설치와 사용 웹 페이지에 게시판 연결하기-게시판 생성 7 게시판이 생성되면 목록 버튼을 클릭 -> 게시판 관리 화면으로 돌아가고 생성된 게시판을 확인 [그림 13-21] 그누보드 사용 : 게시판 목록
03 웹 서버 설치와 사용 웹 페이지에 게시판 연결하기-게시판 생성 8 게시판 목록에서 테이블 이름(linux_bbs)을 클릭 -> 글쓰기 버튼을 클릭 -> 브라우저 상단의 주소를 복사 [그림 13-22] 그누보드 사용 : 게시판 사용
03 웹 서버 설치와 사용 게시판을 웹 페이지에 연결하기 9 user1 사용의 홈 디렉터리에 public_html 디렉터리를 만들고 index.html 파일을 작성 user1@myubuntu:~$ cd public_html user1@myubuntu:~/public_html$ vi index.html <html> <head> <title>html test</title> </head> <body> User1 Web Page!!! <br><br> <a href=http://192.168.0.2/g5-5.0b29/bbs/board.php?bo_table=linux_bbs>우분투 리눅 스 게시판 연결</a> </body> </html> ~ :wq user1@myubuntu:~/public_html$
03 웹 서버 설치와 사용 게시판을 웹 페이지에 연결하기 10 웹 브라우저에서 http://ip 주소/~user1에 접속하면 우분투리눅스 실습 게시판 연결 링크가 출력 [그림 13-23] 그누보드 사용 : 게시판 연결