[네이버클라우드] AIaaS 개발자 과정/Linux

[네이버클라우드캠프] 2023.5.2 Linux(2) - Web Server, Database Server

_꼬마돌 2023. 5. 2. 21:48
반응형

Web Server

일반 사용자 홈페이지 만들어보기

필요 패키지 설치
apt -y install php php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip php-mysql  apache2  mysql-server

root@kwc:~# cd /etc/apache2/mods-enabled                              => mods-enabled : 아파치2 웹서버 모듈 중에 활성화된 모듈들이 모여있는 디렉토리

root@kwc:/etc/apache2/mods-enabled# ls                                => list 명령어로 디렉토리 내의 파일(활성화된 모듈)의 목록을 확인.
access_compat.load  authz_user.load  filter.load       php8.1.load
alias.conf          autoindex.conf   mime.conf         reqtimeout.conf
alias.load          autoindex.load   mime.load         reqtimeout.load
auth_basic.load     deflate.conf     mpm_prefork.conf  setenvif.conf
authn_core.load     deflate.load     mpm_prefork.load  setenvif.load
authn_file.load     dir.conf         negotiation.conf  status.conf
authz_core.load     dir.load         negotiation.load  status.load
authz_host.load     env.load         php8.1.conf                       => 필요한 userdir.conf와 userdir.load 모듈이 없다.
                                                                       => 활성화되지 않은 모듈들은 /etc/apache2/mods-available 디렉터리에 있다.

/etc/apache2/mods-enabled 디렉토리에서 모듈 목록을 출력한 모습. 필요한 모듈이 활성화 되어있지 않다.

userdir.conf모듈과 userdir.load모듈 활성화
ln -s ../mods-available/userdir.conf
ln -s ../mods-available/userdir.load

system restart apache2   => 활성화 후 아파치2 재시작

userdir.conf모듈과 userdir.load모듈이 활성화된 것을 볼 수 있다.

root@kwc:/etc/apache2/mods-enabled# useradd -D -s /bin/bash    => bash를 새로 생성하는 유저의 기본 shell로 설정
root@kwc:/etc/apache2/mods-enabled# vi /etc/login.defs         => 로그인 프로세스 설정 편집 실행
CREATE_HOME yes                                                => 빈 칸에 입력

빈 칸에 CREATE_HOME yes를 입력해준다.

root@kwc:/etc/apache2/mods-enabled# useradd sam   => 'sam' 유저 생성
root@kwc:/etc/apache2/mods-enabled# passwd sam    => pw 설정
New password:
Retype new password:
passwd: password updated successfully

계정 생성 후, 새로운 터미널을 열어 새로 sam 계정으로 로그인한다.
---sam 계정으로 진행---
sam@kwc:~$ mkdir public_html
sam@kwc:~$ chmod 755 public_html/
sam@kwc:~$ vi public_html/index.html

---편집기에 입력---
<meta charset='utf-8'>
<body bgcolor=pink text=green> <br><br> <h1><center>  => 배경색과 글자색을 설정할 수 있다.
<hr><hr>
아니요 뚱인데요?? <br><br>                             => 원하는 문구 입력
<hr><br><br>

저장 후, chmod 755 ~ 입력해서 권한 설정.
브라우저에 127.0.0.1/~sam 입력해서 웹사이트가 정상적으로 뜨는지 확인.

chmd로 권한설정을 해주지 않으면 권한이 없어 거절되었다고 나온다.
일반 사용자의 웹사이트가 만들어졌다. 성공!

 

Database Server

Database Server는 데이터베이스를 호스팅하는 컴퓨터 또는 서버를 의미한다.
데이터베이스 관리 시스템(DBMS)을 실행하고, 데이터베이스테 접속하고, 데이터를 저장,
수정 및 검색하는 데 사용된다.

 

MySQL 관리 기본

설치: apt -y install mysql-server
Deamon: systemctl start mysqld
접속: mysql

처음 mysql-server를 설치하면 관리자인 root password가 비어있다. 설정을 해주어야 한다.
MySQL password 설정방법
root@kwc:~# mysql -u root  => MySQL 서버에 root 계정으로 로그인

mysql> use mysql           => MySQL 콘솔에 접속
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'jj';
Query OK, 0 rows affected (0.02 sec)     => root의 비밀번호 변경. 'jj' 부분에 원하는 비밀번호 입력

mysql> FLUSH PRIVILEGES;                 => 변경된 비밀번호 적용
Query OK, 0 rows affected (0.01 sec)

 

MySQL 계정 사용하기

root@kwc:~# mysql -u root -p         => root 계정으로 mysql 실행
Enter password:                      => 설정한 비밀번호 입력

mysql> create database aceDB;        => DB 생성
Query OK, 1 row affected (0.01 sec)
mysql> use aceDB                     => 생성한 DB 사용
Database changed 

mysql> create table Man(        
    -> name char(20),
    -> age int);                     => 이름과 나이가 들어간 표 생성
Query OK, 0 rows affected (0.03 sec)

mysql> insert into Man values("손흥민", 32);
Query OK, 1 row affected (0.02 sec)

mysql> insert into Man values("이강인", 23);
Query OK, 1 row affected (0.02 sec)      => 표에 넣을 정보 입력

mysql> select * from Man;                => 표 출력
+-----------+------+
| name      | age  |
+-----------+------+
| 손흥민    |   32 |
| 이강인    |   23 |
+-----------+------+
2 rows in set (0.00 sec)

 

MySQL 기본 사용법

  1열 2열 3열
1행 name kor eng
2행 홍길동 50 90
3행 박명수 40 10
name, kor, eng 와 같이 가로로 읽히는 부분을 행, row, record라고 한다.
name, 홍길동, 박명수와 같이 세로를 열, field, column이라고 한다.
SQL 구조
데이터 정의어  DDL : Data Definition Language
  create, alter, drop, truncate
데이터 조작어   DML : Data Manipulation Language
  select, insert, update, delet (CRUD)
데이터 정의어   DCL : Data Control Language
  grant, deny, revoke
데이터 컨트롤   TCL : Transation Control Language
  commit, rollback, savepoint

 

SQLite3 사용하기

root@kwc:~# sqlite3                          => sqlite3 실행
sqlite> .open adb                            => sqlite 데이터베이스 파일 실행
sqlite> .header on                           => 출력 결과의 컬럼 이름 헤더를 표시
sqlite> .mode column                         => 출력 결과를 커럼 모드로 설정. 결과가 열단위로 출력됨.
sqlite> .table                               => 현재 데이터베이스에 있는 모든 테이블의 목록 출력
sqlite> create table Man(                    => 테이블 생성
   ...> name char(20),
   ...> age int);
sqlite> insert into Man values("kim", 20);
sqlite> insert into Man values("choi", 25);
sqlite> insert into Man values("yang", 27);  => 테이블에 들어갈 값 입력
sqlite> select * from Man;
name  age
----  ---
kim   20
choi  25
yang  27
SQLite3는 오픈소스이며 C언어로 구현되어있으며, 작지만 빠르고 강력한 DBMS이다.
https://sqlite.org에서 프로그램과 소스코드를 볼 수 있다.

 

APM 연동 설치

필수 패키지
pache2, php

apache2 설정파일 경로
/etc/apache2

configuration file
/etc/apache2/apache2.conf

Document root-dir
/var/www/html

 

설치와 시작하기

apt -y install apache2
apt -y install install php

systemctl start apache2
systemctl status apache2
systemctl enable apache2

 

APM 연동 확인

별다른 설정 없이도 연동된다.

root@kwc:~# echo "Hello Naver Cloud Camp" >> /var/www/html/b.html

root@kwc:~# vi /var/www/html/k.php

--편집기에 입력--
<?php
        echo(" APM Link <br> ");
        phpinfo();
?>

127.0.0.1/b.html에 입력한 문구가 표시되는 것을 확인 할 수 있다.
127.0.0.1/k.php에도 잘 연동되었다.

 

Tomcat 연동 설치

Tomcat9 설치
apt -y install tomcat9 tomcat9-examples tomcat9-admin tomcat9-docs

Tomcat root-dir
/var/lib/tomcat9/webapps/ROOT

systemctl start tomcat9
systemctl status tomcat9
systemctl enable tomcat9

 

Tomcat 연동 확인

user : ace
pw : star123

파일을 열어 아래 3줄을 추가한다.
vi /var/lib/tomcat9/conf/tomcat-users.xml

<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="acd" password="11" roles="manager-gui,admin-gui"/>

톰캣연동에는 성공했다.
설정한 username과 pw를 입력했지만 manager 로그인에는 실패했다..

 

WordPress 연동해보기

root@kwc:~# useradd money                    => 계정 생성
root@kwc:~# passwd money
New password:
Retype new password:
passwd: password updated successfully


mysql> create database moneyDB;               => 데이터베이스 생성
Query OK, 1 row affected (0.01 sec)
mysql> use moneyDB;
Database changed

mysql에서 'money' 사용자를 생성하고 비밀번호 jj 설정.   
mysql> create user money@localhost identified with mysql_native_password by 'jj';
Query OK, 0 rows affected (0.01 sec)

moneyDB의 모든 권한을 money 사용자에게 부여.
mysql> grant all privileges on moneyDB.* to money@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;                      => 변경사항 즉시 적용

데이터베이스 생성과 사용자에 대한 권한 부여까지 마쳤다.

root@kwc:~# cd /var/www/html                               => /var/www/html 디렉터리로 이동

root@kwc:/var/www/html# wget https://ko.wordpress.org/latest-ko_KR.tar.gz
=> 워드프레스 홈페이지 https://ko.wordpress.org/download/#download-install 에서 소스코드 우클릭 후 복사
=> wget 명령어 뒤에 우클릭 해서 붙여넣기.  apt -y install wget

root@kwc:/var/www/html# ls
b.html  index.html  k.php  latest-ko_KR.tar.gz             => 워드프레스 압축파일이 생긴 것을 볼 수 있다.

root@kwc:/var/www/html# tar xf latest-ko_KR.tar.gz         => 압축해제
root@kwc:/var/www/html# ls
b.html  index.html  k.php  latest-ko_KR.tar.gz  wordpress  => 압축해제된 파일이 생겼다.

root@kwc:/var/www/html# mv wordpress/ wp                   => 편하게 작업하기 위해 wordpress를 wp로 이름을 바꿔주었다.
root@kwc:/var/www/html# ls
b.html  index.html  k.php  latest-ko_KR.tar.gz  wp

root@kwc:/var/www/html# cd wp                              => wp 디렉터리로 이동
root@kwc:/var/www/html/wp# ls
index.php        wp-blog-header.php    wp-includes        wp-settings.php
license.txt      wp-comments-post.php  wp-links-opml.php  wp-signup.php
readme.html      wp-config-sample.php  wp-load.php        wp-trackback.php
wp-activate.php  wp-content            wp-login.php       xmlrpc.php
wp-admin         wp-cron.php           wp-mail.php

root@kwc:/var/www/html/wp# cp wp-config-sample.php wp-config.php   => wp-config-sample.php 파일을 wp-config.php 이름으로 복사

root@kwc:/var/www/html/wp# vi wp-config.php                        => wp-config.php 파일 편집기 실행

다음과 같이 입력 *중요*mysql에서 설정한 것과 동일해야한다.
 23 define( 'DB_NAME', 'moneyDB' );
 24
 25 /** Database username */
 26 define( 'DB_USER', 'money' );
 27
 28 /** Database password */
 29 define( 'DB_PASSWORD', 'jj' );
 30
 31 /** Database hostname */
 32 define( 'DB_HOST', 'localhost' );

mysql에서 설정한 것과 동일하게 입력해준다.

root@kwc:/var/www/html/wp# systemctl restart apache2
root@kwc:/var/www/html/wp# systemctl restart tomcat9
root@kwc:/var/www/html/wp# systemctl restart mysql

브라우저에서 127.0.0.1/wp 입력하면 워드프레스 로그인 화면이 나온다. mysql에서 설정한 내용과 동일하게 입력해준다.
지금 설치하기 클릭
로그인이 완료됐다!! 이제 원하는대로 입력해주고 워드프레스를 이용하면 된다. 성공! ★☆★☆
짜잔


반응형