코학의 개인 블로그

#1 Ubuntu 18.04 LTS 에서 웹서버(NGINX + PHP-FPM + MariaDB) 구성하기 본문

[개발자]DFR-웹언어/Ubunut 18.04

#1 Ubuntu 18.04 LTS 에서 웹서버(NGINX + PHP-FPM + MariaDB) 구성하기

KOHAK 2020. 11. 30. 10:32


안녕하세요, 저는 여러분들께 Ubuntu 18.04 LTS 운영체제에서 NGINX + PHP-FPM + MariaDB

소프트웨어를 설치하고 구성하는 방법에 대해 설명할 [개발자]DFR의 코학입니다.

구축 중 문의사항이 생기면 댓글로 알려주세요.

 

[해당 게시글 환경]

OS: Ubuntu 18.04 LTS

Host: Linode Tokyo

 

이 게시글은 관리자인 상태로 진행했습니다.

참고한 블로그 [클릭]


1) 업데이트

패키지 목록 갱신

# apt update

현재 설치되어있는 프로그램 최신 버전 패치.

# apt upgrade

설치 도중 생기는 찌꺼기 제거

# apt autoremove

 

2-1) 시간 설정

데비안 패키지 재설정을 실행한다.

# dpkg-reconfigure tzdata

 

순서대로 Asia - Seoul 을 선택하면 된다.

 

 

2-2) 시스템 이름(hostname) 설정

이 서버의 이름(hostname)을 정하도록 하자.

권장하는 단어는 이 서버에 연결될 도메인이다. ex) wehum.net

# vi /etc/hostname

빈 파일 또는 localhost 또는 초기 설치 시 설정한 이름이 쓰여있을 건데 원하는 이름으로 바꾸어보자.

 

재부팅

# reboot

재부팅 후 서버 이름(hostname)이 유지되는지 확인

 

3) 프로그램 설치

VI 에디터 설치

# apt install vim

GIT 설치 

# apt install git

Unzip 설치

# apt install unzip

Cetbot 설치

# apt install certbot

 

4) 저장소 및 키 추가

APT 설정 관리 도구 설치

# apt install software-properties-common

Nginx 저장소 추가

# vi /etc/apt/sources.list.d/nginx.list

맨 아래 내용을 추가해주세요.

deb https://nginx.org/packages/ubuntu/ bionic nginx
deb-src https://nginx.org/packages/ubuntu/ bionic nginx

Nginx 키 등록

# wget http://nginx.org/keys/nginx_signing.key
# apt-key add nginx_signing.key

MariaDB 키 등록

# apt-key adv --fetch-keys 'http://mariadb.org/mariadb_release_signing_key.asc'

MariaDB 저장소 추가

add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://ftp.harukasan.org/mariadb/repo/10.5/ubuntu bionic main'

PHP 저장소 & 인증키 추가

# add-apt-repository ppa:ondrej/php

[ENTER]이라고 뜨면 엔터를 누르시면 됩니다.

 

APT 업데이트

# apt update

 

5) Nginx 설치

Nginx 설치

# apt install nginx

부팅 시 Nginx 서버 활성화

# systemctl enable nginx

Nginx 서버 활성화

# systemctl start nginx

Nginx 버전 확인

# nginx -v

아마 여러분이 설치한 버전은 이것보다 높을 것이다.

 

Nginx 서버 상태 확인

# systemctl status nginx

- 동작 여부를 직접 확인해본다.

http://서버IP 에 접속해보자.

이렇게 뜨면 정상이다.

 

6-1) PHP-FPM 설치

PHP7-FPM 설치

# apt install php7.4-fpm

PHP 버전 확인

# php -v

PHP-FPM 버전 확인

# php-fpm7.4 -v

 

6-2) PHP 모듈 설치 (아래는 꼭 필요한 것들입니다.)

Composer 설치

# apt install composer

MySQL 연동 모듈 설치

# apt install php7.4-mysql

Bcmath 모듈 설치

# apt install php7.4-bcmath

Intl 모듈 설치

# apt install php7.4-intl

MBstring 처리 모듈 설치

# apt install php7.4-mbstring

GD 처리 모듈 설치

# apt install php7.4-gd

Curl & Xml 모듈 설치

# apt install php7.4-curl php7.4-xml

 

7) PHP timezone 설정

동일한 작업 2개의 파일에 적용해 주어야 합니다.

# vi /etc/php/7.4/fpm/php.ini
# vi /etc/php/7.4/cli/php.ini

date.timezone 값을 찾아서 주석을 제거하고 표시 시간대를 Asia/Seoul 설정해주세요.

/ 를 입력 후 date를 입력하시면 찾기 쉽습니다.

이 값을 찾아서 

이렇게 변경해주세요.

 

php-fpm 재시작

# service php7.4-fpm restart

 

8) MariaDB 설치

MariaDB 클라이언트 설치

 # apt install mariadb-client

MariaDB 서버 설치

 # apt install mariadb-server

MariaDB 상태 확인

# service mysql status

MariaDB 버전 확인

# mysqladmin version

아마 여러분이 설치한 버전은 이것보다 높을 것이다.

 

9) 기본 언어 셋 설정

언어 셋 설정

# vi /etc/mysql/mariadb.conf.d/override.cnf

생성 후 아래의 내용 저장

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
 
query_cache_type = ON
query_cache_limit = 4M
query_cache_size = 64M
 
max_allowed_packet = 64M
 
slow_query_log         = 1
slow_query_log_file    = /var/log/mysql/mysql-slow.log
long_query_time = 5
 
skip-log-bin
 
sql_mode = NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

 

변경사항 적용

# service mysql restart

변경사항 적용 확인

 # mysqladmin -p variables | grep character

 

데이터베이스 초기화 작업 실행

잘못 입력했을 경우 한번 더 실행하면 된다.

# /usr/bin/mysql_secure_installation

 

 

모두 y를 입력하면 되고 비밀번호는 설정하면 된다.

 

11) Nginx와 PHP-FPM 연결

 Nginx 사용자 권한 변경

# vi /etc/nginx/nginx.conf

첫 줄의 user  nginx; 를 user  www-data; 로 바꿉니다.
둘째 줄의 worker_processes 1; 를 worker_processes auto; 로 바꿉니다.

 

변경사항 적용

# service nginx restart

 

Fastcgi설정

# vi /etc/nginx/fastcgi_params

아래의 내용 전체를 제일 밑에 추가하면 된다.

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  PATH_TRANSLATED    $document_root$fastcgi_path_info;
fastcgi_param  PATH_INFO          $fastcgi_path_info;

기본 CONF 설정

지정하지 않은 도메인 요청에 대해서 연결될 사이트를 설정한다.

# vi /etc/nginx/conf.d/default.conf

이전 내용을 삭제하고 아래의 내용 전체를 추가한다.

server {
    listen       80 default_server;
    server_name  localhost;
    return 444;
}

변경사항 적용

# service nginx restart

 

 

 

이상 #1 Ubuntu 18.04 LTS 에서 웹서버(NGINX + PHP-FPM + MariaDB) 구성하기를 마침니다.

다음은 #2 Ubuntu 18.04 LTS 에서 방화벽 설정 및 실제 사용준비로 찾아 뵙겠습니다.

Comments