GCP를 이용한 워드프레스 블로그 만들기(2)-LEMP설치하기
2탄입니다.
2탄에서는 blog운영에 사용되는 web,php,db 서비스를 한번에 구축해보도록하겠습니다.
한편이면 다 만들수 있기때문에 한편으로 마무리하겠습니다.
Nginx 설치하기
먼저 SSH 콘솔로 접근후에 sudo명령어로 root 권한을 획득해줍니다.
기본적으로 설정되어있는 repo에서는 nginx 버전이 낮기때문에 최신버전을 설치할 수 있도록 몇가지 작업을 하겠습니다.
nginx최신버전(mainline)설치를 위해서는 기본 레포가 아닌 nginx레포지토리를 따로 추가시켜줘야하기 때문에 필요 패키지 설치 -> nginx 레포지토리(mainline)등록 -> nginx 설치 의 과정으로 진행하겠습니다.
필요패키지 설치
패키지 설치이전에 apt update && apt upgrade
로 최신상태에서 시작해야합니다.
sudo apt install curl gnupg2 ca-certificates lsb-release
nginx repository 등록 (mainline / stable)
이제 nginx mainline의 레포지토리를 등록하겠습니다. 혹시 stable 버전설치를 원하면 두번째 줄에있는 명령어를 사용하면 됩니다.
echo "deb http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
그리고 공식 서명키를 받아와서 apt가 패키지의 진위여부를 확인할 수 있도록 합니다.
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
sudo apt-key fingerprint ABF5BD827BD9BF62
nginx 설치
repo 등록과 패키지 인증이 되었으니 이제 apt update를 한번해주고 바로 설치하도록 하겠습니다.
sudo apt update
sudo apt install nginx
설치가 완료되었으면 nginx -v 혹은 nginv -V 로 버전을 확인해주면 됩니다.
추가로 아래 명령어들을 통해 부팅시 nginx가 실행되게 해줍니다systemctl enable nginx
systemctl start nginxservice nginx status
nginx 구동 테스트
먼저 service nginx start로 nginx의 서비스를 시작시켜줍니다.
그리고 netstat -lntp 명령어로 80번 포트가 리스닝 되고있으면 실행이 된상태입니다.
설치가 완료된다음 웹으로 접속해보면 아래처럼 잘나옵니다.
주소는 외부 고정 ip로 지정해준 그 ip 입니다.
PHP-FPM 설치하기
LEMP 스택의 경우 php 기반이기 때문에 php 해석이 가능한 php관련 툴들이 설치되어야 합니다.
ubuntu 18버전의 php의 경우 7.2버전까지 나와서 7.2버전으로 설치하겠습니다.
apt install -y php7.2-fpm php7.2-gd php7.2-json php7.2-mysql php7.2-curl php7.2-mbstring php7.2-intl php-imagick php7.2-xml php7.2-zip
설치할때 Timezone도 설정하는데 Asia/Seoul로 해줍시다
설치 후 아래 명령어로 재부팅시 동작 + 실행을 시켜줍니다.systemctl enable php7.2-fpm
systemctl start php7.2-fpmservice php7.2-fpm status
MariaDB 설치하기
마리아디비도 apt 레포에있는 버전인 10.3버전으로 설치하도록하겠습니다.
최신버전 설치의경우 블로그 내의 다른 글들을 참고 부탁드립니다.
apt install mariadb-server
설치 후 아래 명령어로 재부팅시 동작 + 실행을 시켜줍니다.systemctl enable mariadb
systemctl start mariadbservice mariadb status
PHP 동작 확인하기
동작확인을 위해서는 php파일 생성하나가 필요합니다.
겸사겸사 web root 폴더도 생성하도록 하겠습니다.
mkdir -p /var/www/html
vi /var/www/html/info.php
내용은 아래 내용을 복사 붙여넣기 해주세요.
<?php
phpinfo();
?>
그리고 nginx default 파일도 변경이 필요합니다.
vi /etc/nginx/conf.d/default.conf
아래내용으로 전체 수정을 해줍니다.
server {
listen 80 ;
listen [::]:80 ;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
access_log /var/log/nginx/web.access.log main;
error_log /var/log/nginx/web.error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_cache off;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
include mime.types;
}
location ~ /\.ht {
deny all;
}
}
그리고 service nginx restart
로 nginx를 재시작 시켜줍니다.
이렇게 했을때 혹시 페이지가 안뜬다면
위 글을 참고해서 바꿔주세요.
이제 외부 ip/info.php로 접속해봅시다.
위처럼 뜨면 완성입니다~
3부에서는 ip로 계속 치고들어가기 귀찮기때문에..
도메인을 등록해주도록 하겠습니다.