사실 그때그때 수업 내용을 복습해야 했었는데 그러지 못했고, 본격적인 프로젝트에 들어가기 전에 다시 한번 복습을 하고자 한다.

UMC 2기로써 Server - Spring 강의를 10주간 들었고, 강의의 내용과 내가 부가적으로 찾아본 내용, 워크북, 그리고 실습 과정들을 작성할 예정이다. 


강의 내용

서버의 특징

서버 : 클라이언트 = 1 : N 관계

고정적인 개념이 아닌 상대적인 역할에 따른 관계

 

서버의 구성

클라이언트 : ex) web, 안드로이드, iOS, 게임...

서버 : ex) Apache, Nginx....

백엔드 언어 : ex) php, spring, node.js...

DB, DBMS : ex) mysql, oracle, mongo db...

 


실습 내용

APM 실습

비트나미 설치 하기

윈도우 사용자이므로 WAPM 설치 후 주소창에 "localhost:포트번호" 를 입력하면 잘 동작하는 것을 확인

phpinfo.php 파일을 생성 후 주소창에 "localhost:포트번호/phpinfo.php"를 입력하여 phpinfo 페이지가 나오는 것을 확인 

 

Virtual Box 설치하기

Ubuntu 설치 후 mkdir 명령어를 사용해 study_folder 생성, 폴더 안에 vi 명령어를 사용해 study_file 생성

mkdir study_folder

vi study_file

 

챌린지 과제

1) 가상머신 virtual box 설치하기

2) 가상머신에 리눅스 계열 OS 설치하여 실행하기

3) 리눅스에 APM 소스 설치하기

 

Apache 설치

필수 패키지 설치

$ sudo su
# apt-get install make
# apt-get install build-essential
# apt-get install gcc
# apt-get install --reinstall make
# apt-get install libexpat1-dev
# apt-get install g++ 
# apt-get install net-tools
# apt-get install curl

 

cd /usr
cd local
mkdir apache
/usr/local# wget http://mirror.navercorp.com/apache//apr/apr-1.7.0.tar.gz
/usr/local# wget http://mirror.navercorp.com/apache//apr/apr-util-1.6.1.tar.gz
/usr/local# wget --no-check-certificate https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz
/usr/local# wget --no-check-certificate https://dlcdn.apache.org//httpd/httpd-2.4.51.tar.gz

 

설치 파일 압축해제

/usr/local# tar xvfz apr-1.7.0.tar.gz
/usr/local# tar xvfz apr-util-1.6.1.tar.gz
/usr/local# tar xvfz pcre-8.45.tar.gz
/usr/local# tar xvfz httpd-2.4.51.tar.gz

 

apr 설치 

/usr/local# cd apr-1.7.0
/usr/local/apr-1.7.0# ./configure --prefix=/usr/local/apr
/usr/local/apr-1.7.0# make
/usr/local/apr-1.7.0# make install

 

apr-util 설치

/usr/local# cd apr-util-1.6.1
/usr/local/apr-util-1.6.1# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
/usr/local/apr-util-1.6.1# make
/usr/local/apr-util-1.6.1# make install

 

pcre 설치

/usr/local# cd pcre-8.45
/usr/local/pcre-8.43# ./configure --prefix=/usr/local/pcre
/usr/local/pcre-8.43# make
/usr/local/pcre-8.43# make install

 

apache 설치

/usr/local# cd httpd-2.4.51
/usr/local/httpd-2.4.51# ./configure --prefix=/usr/local/apache2.4 \
--enable-module=so --enable-rewrite --enable-so \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--with-pcre=/usr/local/pcre \
--enable-mods-shared=all
/usr/local/httpd-2.4.51# make
/usr/local/httpd-2.4.51# make install

 

apache 실행

/usr/local# sudo apache2.4/bin/httpd -k start
/usr/local# ps -ef | grep httpd | grep -v grep
/usr/local# sudo netstat -anp | grep httpd
/usr/local# sudo curl http://127.0.0.1

apache 실행 : httpd -k start

apache 종료 : httpd -k stop

 

MySQL 설치

필수 패키지 설치

/usr/local# apt-get update
/usr/local# apt-get install cmake
/usr/local# apt-get install libssl-dev
/usr/local# apt-get install libboost-all-dev
/usr/local# apt-get install libncurses5-dev libncursesw5-dev
/usr/local# apt-get install perl

 

설치 파일 압축해제

/usr/local# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19.tar.gz
/usr/local# tar xvfz mysql-8.0.19.tar.gz

 

디렉토리 생성 및 소스 설치

/usr/local# cd mysql-8.0.19
/usr/local/mysql-8.0.19# mkdir dir_mysql
/usr/local/mysql-8.0.19# cd dir_mysql
/usr/local/mysql-8.0.19# cd ..
/usr/local# cd src
/usr/local/src# sudo wget https://boostorg.jfrog.io/artifactory/main/release/1.70.0/source/boost_1_70_0.tar.gz
/usr/local/src# sudo tar xvfz boost_1_70_0.tar.gz
/usr/local/src# cd ..
/usr/local# cd mysql-8.0.19/dir_mysql
/usr/local/mysql-8.0.19/dir_mysql# cmake \
.. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DSYSCONFDIR=/etc \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/src/boost_1_70_0

 

실행

/usr/local/mysql-8.0.19/dir_mysql# make
/usr/local/mysql-8.0.19/dir_mysql# make install

 

MySQL 그룹 및 유저 생성

/usr/local/mysql-8.0.19/dir_mysql# groupadd mysql
/usr/local/mysql-8.0.19/dir_mysql# useradd -r -g mysql -s /bin/false mysql

 

디렉토리 생성

/usr/local# cd mysql
/usr/local/mysql# mkdir mysql_files

 

권한 설정

/usr/local/mysql# chown -R mysql:mysql /usr/local/mysql
/usr/local/mysql# chown mysql:mysql mysql_files
/usr/local/mysql# chmod 750 mysql_files

 

기본 DB 생성

/usr/local/mysql# bin/mysqld --initialize --user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

이때 임시 비밀번호가 생성됨

 

MySQL 서버 실행

/usr/local/mysql# bin/mysqld_safe --user=mysql &

 

로그인

#bin/mysql -u root -p

#Enter password: 비밀번호 입력

 

 

PHP 설치 

필수 패키지 설치

& sudo su
/usr/local# apt-get install libxml2-dev
/usr/local# apt-get install libjpeg-dev
/usr/local# apt-get install libpng-dev
/usr/local# apt-get install libsqlite3-dev

 

소스 설치 및 압축 해제

/usr/local# wget https://www.php.net/distributions/php-8.1.0.tar.gz
/usr/local# tar xvfz php-8.1.0.tar.gz

 

PHP 설치

/usr/local# cd php-8.1.0

/usr/local/php-8.1.0# ./configure \
--with-apxs2=/usr/local/apache2.4/bin/apxs \ 
--enable-mysqlnd \ 
--with-mysql-sock=mysqlnd \ 
--with-mysqli=mysqlnd \ 
--with-pdo-mysql=mysqlnd \ 
--with-imap-ssl \ 
--with-iconv \ 
--enable-gd \ 
--with-jpeg \ 
--with-libxml \ 
--with-openssl

/usr/local/php-8.1.0# make
/usr/local/php-8.1.0# make test
/usr/local/php-8.1.0# make install

 


워크북 및 추가 개념

비트나미(Bitnami)

가상 어플라이언스 및 웹 어플리케이션, 개발 스택용 소프트웨어 설치 라이브러리

APM 

Apache + Php + Mysql

로컬호스트(localhost) 

네트워크에서 자기 자신을 지칭하는 호스트 명 (=127.0.0.1)

가상머신(Virtual Machine)

물리적인 하드웨어 시스템에 구축되어 자체 CPU, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 가상 컴퓨터 시스템으로 작동하는 가상환경

Linux

오픈소스 유닉스 계열 운영체제

Ubuntu

Linux의 배포판

 

 

후기

가상 머신을 처음 다뤄보아 신기하였다.

윈도우 운영체제를 쓰고 있는 노트북에서는 wsl을 통해서만 리눅스를 사용할 수 있을 줄 알았는데, 가상머신을 통해 활용할 수 있다는 점도 새롭게 알 수 있었다.

비트나미, 그리고 apm에 대해서도 공부하였고, virtualbox에 설치를 하는 시간을 가졌다.

설치할 때 필요한 명령어들이 정말 많았고, 오랜 시간을 걸쳐서 설치를 진행하였지만, 그동안 클릭 한번으로 설치한 것과 달리 명령어만을 이용해 설치를 진행한 것이 처음이었고 신기한 경험이었다. 

복사했습니다!