라이징캠프 (1주차)-2

Do_Doolly·2022년 2월 9일
0

라이징캠프

목록 보기
2/14
post-thumbnail
  • 부트캠프 상세내용은 아래 링크[1] 참고.

강의 내용 정리랑 과제 내용을 한번에 적으려고 했는데, 생각보다 가상머신과 리눅스 설치하는데 꽤 많은 내용을 적었다. 설치 시간은 곱배기로... 이번 글에는 본격적인 과제 진행 내용이다.


📖 강의 주제

- OT & 서버 개요

서버의 큰 개념 및 Linux 서버 환경 구축 준비


📝 목표

- APM 설치

  • VM 설치 (Virtual Box)
  • Linux 설치 (Ubuntu 20.04)
  • 웹 서버 설치 (Apache)
  • Database 설치 (MySQL)
  • Backend Language 설치 (PHP)

▶️ 개발 일지

3. Linux 설치

  • 지난번에 설치는 다 했는데, Virtual Box에서 Ubuntu를 실행하면 화면 깜빡임이 너무 심했고, 렉도 많이 걸렸다. 정확한 원인은 잘 모르겠지만 디스플레이의 3D 가속엔진과 시스템 프로세서 추가 할당을 하니까 증상은 좀 나아졌다. 게스트 확장은 효과가 있는지 솔직히 잘 모르겠다.
  • 시스템 프로세서는 최대 권장 할당으로 설정했고
  • 디스플레이의 3D 가속사용을 체크했다. 참고로 그래픽 컨트롤러가 VMSVGA일 때만 3D 가속이 가능해서, Ubuntu OS 설치 후 바꾸는 것을 추천한다.
  • 게스트 확장 방법은 다른 블로그[2]에서 확인할 수 있다.

4. Linux 쉘 사용

1) Linux 쉘이란?

  • 명령어를 입력하여 사용자가 프로그램을 실행시킬 수 있는 다리 역할을 하는 것이다. 좀 더 엄연히 말하면 Linux 운영체제의 심장인 커널(Kernel)에게 사용자의 명령을 해석해서 전달하는 역할
  • CLI 환경으로 동작하며 자체 프로그래밍 기능이 있다.

2) 쉘의 종류

  • sh, bash, csh, tcsh, zsh 등
  • 요즘 주로 쓰이는 쉘은 zsh

3) 쉘 주요 명령어

  • mkdir : 디렉토리 생성
    cd : 디렉토리 이동
    vim : vim 에디터 실행
    wget : web get의 약자로 웹에서 파일 불러오기
    rm : 파일 및 디렉토리 삭제

4) 소스 설치

  • 컴파일 설치, 수동 설치와 동일한 의미로 서버에서 소스코드를 직접 다운로드 받고 실행파일로 컴파- 일해서 직접 설치하는 것
  • 반대로 패키지 설치가 있으며, 실제로 개발할 때는 패키지 설치를 주로 하게 된다
  • 소스 설치는 관례적으로 /usr/local 위치에 설치한다

5. 웹 서버 설치

1) 웹 서버란?

  • 클라이언트로부터 요청을 받아 응답을 주는 하드웨어/소프트웨어

2) 웹 서버 vs 웹 어플리케이션 서버(WAS)

  • 웹 서버는 HTML같은 정적인 데이터를 클라이언트에게 전송.
    웹 어플리케이션 서버는 클라이언트가 요청한 내용에 따라 데이터를 검색 및 변환하여 전송
  • 유명한 제품으로는 아파치와 아파치 톰캣이 있다. 이 둘의 이름때문에 헷갈린다 😨

3) Ubuntu에 Apache 설치 (블로그 참고[3])

  • 필수 패키지 설치
$ apt install make
$ apt install build-essential
$ apt install gcc
$ apt install libexpat1-dev
$ apt install g++
$ apt install net-tools
$ apt install curl
  • 소스파일 압축해제 및 빌드
    (1) apr 설치
    (2) apr-util 설치
    (3) pcre 설치
    (4) apache 설치
  • 서버 실행
    웹 브라우저에 http://127.0.0.1 이나 localhost를 입력하고 It works! 가 나오면 된다

6. Database 설치

1) DB란?

  • 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터의 모임

2) DBMS란?

  • 데이터베이스를 관리하고 운영하는 소프트웨어
  • 유형에 따라 계층형(Hierarchical), 망형(Network), 관계형(Relational), 객체지항형(Object-Oriented) 등이 있다
  • 주로 사용하는 관계형 데이터베이스로는 Oracle, SQL Server, MySQL 등이 있다

3) Ubuntu에 MySQL 설치 (블로그 참고[4])

  • 필수 패키지 설치
$ apt install cmake
$ apt install libssl-dev
$ apt install libboost-all-dev
$ apt install libncurses5-dev libncursesw5-dev
  • 소스파일 압축해제 및 빌드
    (1) mysql 소스파일 다운로드
    (2) 압축 해제 후 mysql 폴더 내부에 임의 디렉토리 생성
    참고로 빌드하는데만 2시간 정도 걸렸다...
$ mkdir mysql_test
$ cd mysql_test
$ 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/mysql/boost

  • MySQL DB 초기화
    (1) mysql 그룹 및 유저 생성
    (2) 디렉토리 생성 후 권한 설정
    (3) 기본 DB 생성
  • MySQL 서버 실행
$ mysql -u root -p
# mysql 설정 비밀번호 입력
$ ps -ef | grep mysqld
# mysql 서버 실행 확인

아래와 같이 mysql을 실행했을 때 MySQL 모니터가 나오면 된다

7. Backend Language (PHP) 설치

1) Backend Language란?

  • 서버를 개발하는 백엔드 분야에서 주로 쓰이는 프로그래밍 언어
  • 종류가 다양하며 각 언어와 프레임워크마다 특징이 다름
  • Java === Spring
    JavaScript === Node.js (Express)
    Python === Django
    PHP === Laravel

2) Ubuntu에 PHP 설치 (블로그 참고[5])

  • 필수 패키지 설치
$ apt install libjpeg-dev
$ apt install libpng-dev
$ apt install libsqlite3-dev
  • 소스파일 압축해제 및 PHP 설치
    (1) 소스파일 다운로드
    (2) php 환경설정
$ cd 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
  • Apache, PHP 연동
    (1)아파치 설정 파일인 httpd.conf 파일에서 mime_module 수정

    (2) php.ini 파일을 /usr/local/lib에 복사
  • 테스트 파일 작성
    (1) Apache의 웹 콘텐츠 디렉토리인 htdocs로 이동
$ cd apache2.4/htdocs
$ vim phpinfo.php

아래와 같이 vim 에디터를 이용해서 php 테스트 파일 작성 후 웹 브라우저에서 실행

<?php
phpinfo();
?>
  • 실행화면

& 링크모음

[1] : 라이징캠프
[2] : Virtual Box에서 게스트 확장 추가
[3] : APM 소스 설치 - Apache
[4] : APM 소스 설치 - MySQL
[5] : APM 소스 설치 - PHP

profile
생각하면 복잡하니까 일단 해보자

0개의 댓글