[따라 하며 배우는] 1. 우분투에 LEMP 스택 설치하기

2019. 9. 26. 14:20연재/웹 서버 구축하기

1-1. 서론

'따라 하며 배우는 웹서버 제작'에 오신 걸 환영합니다.
저번 강의에선 하드웨어 준비부터 기본적인 우분투 설치 까지를 다루었습니다.
이번 강의에서는 저번에 설치하신 우분투 서버 18.04 LTS에 LEMP 스택을 설치하는 방법을 다루겠습니다.

LEMP Stack

LEMP 스택은 Linux , (E)nginx, Mysql(MariaDB), PHP 이 네 가지 구성요소를 말합니다. 어째서 LNMP가 아니라 E를 사용했는지는 모르겠지만, LAMP 스택 (Linux Apache Mysql PHP)와 비슷한 이름을 설정한 게 아닐까 생각합니다.
우선 LEMP는 일반적인 웹 서버 환경이나 CMS 설치를 위해 필수적인 요소를 모아둔 것으로 LEMP 스택만 구성하셔도 일반적인 웹서버 운영이 가능합니다.


1-2. Nginx 설치

보통 설치 과정에서 패키지 목록 새로고침과 업그레이드가 일어나지만 우리는 확실하게 하기 위해 다시 한번 이 명령어를 입력해줍니다.

~$ sudo apt update
~$ sudo apt upgrade

루트 계정을 이용하지 않고 sudo 명령어를 사용하는건 보안상 중요합니다. 자세한 내용은 여기에서 확인해주세요.

그후, Nginx를 설치해줍시다.

~$ sudo apt install nginx

지금은 Nginx에 대한 특별한 설정을 필요로 하지 않습니다. 제대로 설치되었는지 확인하려면 서버 ip주소 혹은 도메인으로 접근하시면 됩니다.


1-3. MariaDB 설치

일반적으로 지금까지는 MySQL이 사용되어왔습니다. 그러나 MySQL을 오라클이 인수하며 폐쇄적인 라이선스와 업데이트 내역을 자세히 공개하지 않아 이용자들의 불만이 생겨왔습니다. 그 후 MySQL 개발자들 일부가 나와 재단을 세우고 MySQL 5.5 버전을 기반으로 다시 개발을 시작한 게 MariaDB입니다.

MariaDB의 장점으로는

  • 약 5% 높은 성능
  • 오픈소스 라이선스
  • 개방적이고 활발한 개발
  • MySQL과 호환성 보유

등이 있습니다. 그래서 저는 이번 강의에서 MySQL 대신 MariaDB를 설치하는 방향으로 여러분들에게 알려드리려 합니다. 우선 MariaDB를 설치합시다.

~$ sudo apt install mariadb-server mariadb-client

APT 명령어는 원하는 패키지명을 띄어쓰기로 구분하여 한번에 설치가 가능합니다. 설치가 완료된 후 보안을 위해 관련 설정을 진행해주겠습니다.

~$ mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

Enter current password for root (enter for none):

해당 명령어를 실행하면 루트 비밀번호를 묻습니다. 설정하지 않았다면 엔터, 설정했다면 해당 비밀번호를 넣어주세요. 우분투 설치 시 생성했던 계정은 루트 계정이 아닙니다.

OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n]

MariaDB 관리용 DB 루트 계정 비밀번호를 설정할 수 있습니다. Y를 눌러 안전한 비밀번호를 만들어주세요.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n]

기본적으로 만들어진 익명 계정을 삭제하겠냐는 질문입니다. 보안상 없는 게 안전함으로 Y를 눌러 제거를 진행합니다.

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n]

DB 루트 계정에 대한 외부 접속을 차단하겠냐는 질문입니다. 보안상 Y를 눌러 localhost 외의 위치에서 접속을 막아줍시다.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n]

말 그대로 테스트용 더미 DB를 삭제하겠냐는 질문입니다. 필요가 없으므로 Y를 눌러 삭제해주세요.

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n]

지금까지의 수정 사항을 바로 적용하기 위해 Y를 눌러 넘어갑니다.

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

수고하셨습니다. MariaDB의 설치와 기본 설정이 마무리되었습니다.

1-4. PHP7 설치

가장 최신 버전인 PHP7.3을 설치하기 위해서는 PPA를 설정해야 합니다. Personal Package Archive, PPA는 개인의 패키지 저장소입니다. 그러나 이번 강의에선 안정성과 호환을 위해 7.2 버전을 사용하겠습니다.

~$ sudo apt install php7.2

설치가 완료된 후 필요한 익스텐션은 다음 명령어로 찾아볼 수 있습니다.

~$ sudo apt-cache search php7.2

 


1-5. 마치며

LEMP 스택의 설치는 마무리되었지만, Nginx와 PHP7, MariaDB의 연동은 아직 진행되지 않았습니다.

다음 강의에는 각각의 연동 설정과 기초 세팅 방법을 설명하겠습니다.
LEMP 스택 설치 과정에서 문제가 발생했다면 댓글을 남겨주세요.
가능한 부분까지 친절히 도와드리겠습니다. 감사합니다!


도움이 되셨다면 아래 버튼을 눌러 커피 한 잔을 주세요! :D

DonationDonation

이 글을 무단으로 수정, 개시하지 마십시오. 본 내용은 본인이 직접 작성하였음을 알려드립니다.

'연재 > 웹 서버 구축하기' 카테고리의 다른 글

[따라 하며 배우는] 0. 서버 환경 준비  (0) 2019.09.25