아마존 라이트세일 워드프레스 서버 구축 세팅하기

https://swiftcoding.org/ubuntu-package-update
요거 참고함.
ssh키로 putty로 서버에 접속

패키지 업데이트와 업그레이드

$ sudo apt update
$ sudo apt upgrade
Configuring grub-pc라면서 선택하는 화면이 나오면 keep the local version currently installed를 선택한다.

서버 시간 설정

$ sudo dpkg-reconfigure tzdata
아시아 – 서울을 선택함.
$ date
시간확인

Nginx(엔진엑스) 설치하기

$ sudo apt-get update 패키지 업데이트
$ sudo apt-get install nginx 설치
$ nginx -v 버전확인
웹브라우저에서 서버 IP주소를 입력해보면 화면에 ‘Welcome to nginx!’라는 문구가 나온다.
오류가 났을 때는 위에 나온 패키지 업데이트와 업그레이드를 해봐야 한다.

sftp이용을 위한 폴더 소유자, 권한 변경

$ sudo   chown    -R   변경할 소유자이름   /var/www
$ sudo   chown    -R   변경할 그룹이름   /var/www
사용자와 그룹을 같게 해도 됨.
$ sudo   chown    -R   ubuntu   /var/www
$ sudo   chown    -R   ubuntu   /var/www

php 7.2 버전 설치하기

$ apt-cache polcy php
이것으로 설치가능한 php를 조회해 볼 수 있는데 7.0이 표시된다. 7.2를 설치하기 위해선 바로 install을 해서는 안된다.
$ sudo add-apt-repository ppa:ondrej/php
계속하겠냐는 물음이 나오면 엔터.
$ sudo apt-get update
패키지 업데이트를 해서 7.2가 포함되도록 한다. 이제 다시 조회해보자.
$ apt-cache polcy php
이제는 php7.2 버전 설치가능하다는 것을 볼 수 있다.
설치하자. 그런데 엔진엑스에서는 php를 해석할 수 없기 때문에 php fpm을 설치해야한다. 계속 진행하겠냐고 물을 땐 Y를 누른다.
$ sudo apt-get install php7.2-fpm
그리고 여러가지 php 모듈을 설치한다. 계속 진행은 Y.
$ sudo apt-get install php7.2-cli php7.2-curl php7.2-gd php7.2-mysql php7.2-mbstring zip unzip
php-fpm을 시작한다.
$ sudo service php7.2-fpm start

nginx 설정하기

$ sudo vi /etc/nginx/sites-available/default
이 파일에 들어가서 아래로 내려보면 nginx가 처리할 파일 종류들이 나와있다.
index index.html index.htm index.nginx-debian.html; 이라고 되어 있는데 여기에 ‘index.php’를 추가해준다.
그래서 index index.php index.html index.htm index.nginx-debian.html; 가 되도록 해준다.
그리고 맨 아래에 } 위에 다음과 같이 적어준다.

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}

내가 적은게 문제가 없는지 확인하는 명령어
$ sudo nginx -t
syntax is ok와 successful이 나오면 제대로 설정한 것이다.
참고로 vi 편집기에서 편집을 시작할땐 i를 누르고 편집이 끝나면 esc를 누른뒤 :wq를 누르고 엔터하면 저장하고 빠져나온다.
$ sudo service nginx restart

테스트해보기

index.php파일을 만들어본다. 메모장을 열어서

<?php
phpinfo();
?>

라고 적고 다른이름으로 저장 – 파일형식은 모든파일로 하고 index.php로 저장한다.
/var/www/html 폴더에 index.php 파일을 업로드 해본다.
php에 대한 정보가 나오면 여기까지 성공이다.

php 기본시간 설정하기

시간을 바꾸기 위해서 2가지 파일을 수정한다.
$ sudo vi /etc/php/7.2/fpm/php.ini
찾기명령어로 찾아야 한다.
:/time.zone이라고 하면 [Date]에서 주석으로 처리된 부분을 찾을 수 있다.
” ;date.timezon = “에서 주석인 ;를 삭제하고 date.timezon = Asia/Seoul이라고 수정해준다.
$ sudo vi /etc/php/7.2/cli/php.ini
이 파일도 위와 같이 수정해준다.
$ sudo systemctl restart php7.2-fpm
재시작 후에 다시 php정보 페이지를 새로고침해보면 timezone이 평양에서 서울로 바뀌었다.
이제 테스트까지 마쳤으니 index.php 파일을 수정해서 서버정보가 노출되지 않도록 해야한다. index.php 파일에 abc와 같은 아무 내용이나 적어서 수정해준다.

마리아DB(maria) 설치하기

php설치할 때처럼 먼저 설치 가능한 마리아DB 버전을 확인해본다.
$ sudo apt-cache polcy mariadb-server
이렇게하면 10.0이 나오는데 내가 설치하려는 것은 더욱 최선 버전이다.
https://downloads.mariadb.org/mariadb/repositories/#mirror=kaist
여기에 들어가서 운영체제와 설치하고 싶은 것을 선택하면 실행할 명령어가 나온다.

$ sudo apt-get install software-properties-common
$ sudo apt-key adv –recv-keys –keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
$ sudo add-apt-repository ‘deb [arch=amd64,arm64,i386,ppc64el] https://ftp.harukasan.org/mariadb/repo/10.3/ubuntu xenial main’
$ sudo apt update

10.3버전을 선택하니 이렇게 네개의 명령어를 실행하면 리스트업이 된다.
설치하는 명령어
$ sudo apt install mariadb-server
진행할것인지 물으면 Y로 대답하고 DB의 root 계정 비밀번호를 입력하라고 나온다.(우분투의 root와는 별개이다) 두번 입력해준다.
마리아DB 버전확인하는 명령어
service mysql status
맨 윗줄에서 버전을 확인하고 q를 눌러서 빠져나온다.

php-fpm과 DB 연동

$ sudo apt-cache policy php7.2-mysql
연동모듈이 설치되어 있지 않다면 Installed : none이라고 표시될 것이고 설치되어 있다면 7.2.7-1+ubuntu16.04.1+deb.sury.org+1 이런식으로 표시될 것이다. 설치되어 있지 않았을 땐 다음 명령어를 실행한다.
$ sudo apt-get install php7.2-mysql

마리아DB 언어셋 설정

한글을 사용하기 위해서는 언어셋을 UTF8로 설정해야한다. 그런데 요즘에는 모바일에서 이모지도 있으니 utf8mb4 언어셋으로 설정하는게 좋겠다.
이를 위해서는 /etc/mysql/conf.d/mariadb.cnf 파일을 수정해야한다. 없다면 새로 만들어서 아래의 내용을 넣어주자.
먼저 파일 만들기
$ sudo touch /etc/mysql/conf.d/mariadb.cnf
수정하기
$ sudo nano /etc/mysql/conf.d/mariadb.cnf
아래내용을 넣자.

# MariaDB-specific config file.
# Read by /etc/mysql/my.cnf
[client]
# Default is Latin1, if you need UTF-8 set this (also in server section)
default-character-set = utf8mb4
[mysqld]
#
# * Character sets
#
# Default is Latin1, if you need UTF-8 set all this (also in client section)
#
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
character_set_server = utf8mb4
collation_server = utf8mb4_unicode_ci

복사해서 마우스 우클릭을 하면 붙어넣기가 된다. 컨트롤X를 누르고 y를 누르면 저장 후 종료된다.
재시작하기
$ sudo service mysql restart

https 프로토콜을 위한 방화벽 443 열기

아마존에서 인스턴스를 만들었을때 기본적으로는 http 80포트와 ssh 22포트만 열려있다. 하지만 요즘엔 https 프로토콜을 주로 사용하기 때문에 443 포트를 열어줘야한다.
아마존 라이트세일(lightsail) 홈페이지에 접속한다.

  1. 내가 만든 인스턴스 선택
  2. 상단 메뉴 중 네트워킹
  3. 방화벽 메뉴에서 ‘다른 항목 추가’
  4. https 443 포트를 선택하고 저장하기

 
여기까지 모두 마쳤다면 서버에 운영체제, 엔진엑스(nginx), php, 마리아db까지 설치한 것이다. 이후에 여러 방향으로 이 서버를 활용할 수 있을 것이다. 나는 ssl인증서를 적용시키고 워드프레스를 설치할 것이다.

You may also like...

댓글 남기기

이메일은 공개되지 않습니다.