일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 우분투
- 강좌
- 마크
- 코드블록
- 마크 통합 서버 버킷
- 디코 봇
- 디스코드 봇
- 마크서버
- 디스코드봇
- 마크 통합 버전 버킷
- C++
- 마인크래프트 통합 서버 버킷
- c
- 디스코드 봇 강좌
- 우분투 마인크래프트 서버
- 디스코드봇강좌
- 마인크래프트서버강좌
- 우분투 서버
- 프로그래밍
- 마인크래프트
- 마인크래프트 리눅스 서버
- 디코봇강좌
- 마크서버강좌
- 디코봇
- 마인크래프트 통합 버전 버킷
- minecraft
- 호스팅강좌
- 방화벽설정
- 마인크래프트서버
- 디코 봇 강좌
- 오늘
- 전체
코학의 개인 블로그
#1 Ubuntu 18.04 LTS 에서 웹서버(NGINX + PHP-FPM + MariaDB) 구성하기 본문
#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 에서 방화벽 설정 및 실제 사용준비로 찾아 뵙겠습니다.
'[개발자]DFR-웹언어 > Ubunut 18.04' 카테고리의 다른 글
#2 Ubuntu 18.04 LTS 에서 방화벽 설정 및 실제 사용준비 (0) | 2020.12.28 |
---|