[리눅스 서버] LEMP 스택 설치 (Nginx, MariaDB, PHP)

LEMP 소프트웨어 스택은 동적 웹 어플리케이션을 구현하기 위해서 필요한 Linux + Nginx + MySQL(MariaDB) + PHP를 모아서 부르는 말이다.
LAMP에서 Linux + Apache + MySQL + PHP를 다루었으므로, 여기서는 우분투를 기반으로 하여 Nginx와 MariaDB로 구성하여 이야기하고자 한다.

Nginx는 러시아의 개발자인 Igor Sysoev가 개발하였으며, 더 적은 자원으로 더 빠르게 데이터를 서비스 할 수 있는 장점을 가지고 있으며, 사용자들이 점진적으로 증가하고 있어 차세대 웹서버로 불리고 있다.
Apache서버만큼 다양한 모듈을 지원하지 않지만, nginx의 개발 목적 자체가 높은 성능에 맞춰져 있기 때문에 사용하지 않는 기능은 과감하게 제외했다.
Nginx가 자체적으로 PHP 를 해석할 수 없기 때문에 외부 프로그램의 도움을 받아야 하며, 이때 사용하는 것이 php-fpm이다.
PHP-FPM 은 Nginx 로 부터 전달 받은 경로의 PHP 파일을 실행시키고 그 실행 결과를 Nginx 에게 반환하는 독립 실행 프로그램이다.

MagiaDB는 MySQL의 오픈 소스를 기반을로 만들어진 DBMS로, ‘기본구조’와 ‘사용방법’이 동일하다.
MySQL이 오픈소스 DBMS로 상용 DBMS를 제외한 다른 어떤 제품보다 압도적인 ‘단순 쿼리 처리’ 성능을 보이기 때문에 오랜 기간 사용되어 왔고, 그 성능이 꾸준히 개선되어 왔다. MySQL은 2008년 썬마이크로시스템즈에 합병되고, 2010년에는 썬마이크로시스템즈는 오라클에 합병되었다. 그 과정에서 MySQL의 창시자인 Monty Widenius가 만든 프로젝트가 ‘MariaDB’ 이다.

 

1. Nginx 설치와 설정

(1) Nginx 설치

여기서는 우분투 배포판(ubuntu-16.04)을 기준으로 apt를 이용한 설치로 설명하기로 한다.

$ apt-get update $ apt-get install nginx

(2) Nginx 설정

/etc/nginx/sites-enabled/default 설정 예시

– listen : http 를 수신하는 80 포트를 지정한다는 의미이다. https 를 수신할때는 443을 설정한다.
– server_name : 본인이 소유한 도메인 네임을 작성하는 부분이다.
– index : document root 폴더에서 uri를 지정하지 않을시 처음 실행 할 파일명이다.
– client_max_body_size : 이 가상 호스트에 대해 nginx가 수락하는 http 요청 본문의 최대 크기이다. 요청 본문 크기가 이 값을 초과하는 경우 nginx는 4xx http 응답을 반환한다.
– error_log 가상 호스트 오류 로그 파일
– access_log 가상 호스트 접근 로그 파일
– root document root 디렉토리
– location / { } uri와 일치하는 파일을 찾아서 매치하는 역할이다.
– location ~\.php { } 일치하는 파일중 확장자가 php 일 때, 작동하는 블럭이다. php-fpm과 FastCGI 관련 설정이 포함되어 있다.

 

2. MariaDB 설치와 설정

(1) MariaDB 설치

mariadb도 apt를 이용해서 설치한다.

 

(2) mariaDB 설정

mariaDB의 설정파일은 /etc/mysql/conf.d/mariadb.cnf 이다.

기본적으로 이정도만 주석제거하여 변경하고 저정한다. 추가로 자신에게 필요한 설정은 자신에 맞게 추가하자.

 

3. php-fpm/php 설치와 설정

(1) php-fpm 과 php 설치

PHP-FPM는 PHP FastCGI Process Manager의 약자로 PHP를 FastCGI 모드로 동작하도록 해준다. PHP5.4 RC부터는 PHP에 기본 내장 되었다.
php-fpm만 설치하면 의존성으로 php가 설치되지만 이렇게 하고, mariaDB를 먼저 설치하였으니, 연동을 위해 php-mysql도 설치한다.

다음으로 일반적으로 많이 사용하는 php 모듈들을 설치하자. (php-memcached를 위해 memcached도 설치하자.)

 

(2) PHP 설정

/etc/php/7.0/fpm/php.ini 파일을 열어 timezone을 설정하고, memcached 사용을 위하여 ssession 부분을 변경한다. 그외에 기본적인 설정들은 자신에 맞게 설정한다.

php-fpm 설정파일은 /etc/php/7.0/fpm/php-fpm.conf 이다.

자식 프로세스의 최대 실패 횟수며 정해신 시간(1m) 동안 이 횟수만큼(10) 자식 프로세스가 실패하면 마스터 php-fpm 프로세스가 정상적으로 재시작하라는 설정이다.

 

4. 서비스 재시작

여기까지 설정을 모두 마쳤으면 설치한 모든 서비스를 재시작시킨다.

 

 

[참고자료]

 


댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다