본문 바로가기

IT

ubuntu 웹 서버 구축 및 연동하기

우분투 웹서버 구축 및 연동하기

 

저번 시간에 이어서 두 번째 시간으로 웹 서버 구축과 연동하기를 진행해보도록 하겠습니다.

아 이게 사진이 없으면 좀 답답하시려나요?

그렇다면 같이 진행해보죠~~

 

저번 시간에 어디까지 했냐면

- 우분투 18.04 LTS ISO 파일을 다운, refus3.8을 사용하여 설치 USB를 만들고 컴퓨터에 USB를 꼽고 아이디 설정 설치

- root 권한 얻는 방법과 ifconfig 사용법, ping 테스트

- apt-get update와 apt-get upgrade까지

 

첫 번째 우분투를 설치한 서버 컴퓨터에서 그대로 진행하셔도 됩니다만

저는 다른 컴퓨터에서 진행을 하려고 하기 때문에 저처럼 다른 컴퓨터에서 진행을 하실 분들은 빨간 글씨도 봐주세요

 

- apt install nginx와 apt install php-fpm을 설치(공통)

nginx는 웹 서버 소프트웨어로, 가벼움과 높은 성능을 추구, 웹 서버, 리버스 프록시 및 메일 프록시 기능을 가져

홈페이지를 만들 때 테스트 서버로 활용하기 좋더라고요. 

로그인, 게시글 등록, 실시간 검색어 등등 보여주려면 동적인 페이지 구현이 필요한데 웹 서버 이외의 외부 프로그램에서 처리하는 방법을 사용합니다. 

 

cgi 과정

우리가 설치하려는 php-fpm도 CGI에 해당합니다. 

php-fpm는 php fastCGI Process Manager의 약자입니다. 

아무튼 빠르고 좋단 것만 기억하시고 

두 개를 설치하셨으면 이제 서버 컴퓨터에서 ( ifconfig )로 현재 아이피를 확인해줍니다.

어떤 게 아이피야? 어떤게 아이피냐면 enp1s0: 에서 inet x.x.x.x 이게 서버 컴퓨터의 아이피입니다.

 

아무튼 이걸 외워서 내 자리로 옵니다.

cmd(명령 프롬포트)를 열고 ( ssh smile@아이피(x.x.x.x) ) 적고 엔터, ( 패스워드 )를 적고 엔터

오류가 뜨면 첫 번째는 잘 못 적은 거고
두 번째는 이전에 접속한 기록이 있는 것이다
( ssh-keygen -R 아이피 )  누르고

ssh smile@x.x.x.x 누르시면 됩니다.

모르는 것이 있으면 ( man 특정 명령어 ) 검색해보자
나는 man이 싫다 하는 사람들은 ( ssh-keygen --help ) 이처럼 --help를 사용해 도와달라고 해보자

 

자 연결이 되었습니다. 하지만 root 계정이 필요합니다. nginx에 php를 연결해야 하기 때문이죠. 우리는 어떻게 했죠?

( su ) 누르고 ( 패스워드 ) 누르면 root@smile-server:/home/smile# 이렇게 나옵니다

 

* 저는 유저 아이디를 smile, 서버 아이디를 smile-server, 닉네임을 smile 이렇게 해서 나온 거예요

 

이제 ( cd / etc/nginx/ ) 경로로 들어가서
( ls ) 입력하고 list를 보면

우분투 nginx 설정 과정1

( cd sites-available ) 경로로 들어간다
( vi default )를 작성하면 sites-available 속성 창으로 들어가게 되는데
설정을 해준다.

 

*여기서 VI는 일종의 에디터입니다.

나중에 vi에 대해서 자세하게 알아보는 시간을 갖겠습니다.

 

우분투 nginx 설정 과정2


location / { 이 라인 위로


location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

 

i를 눌러 INSERT를 만든 후 서버 컴퓨터에서 사용하시는 분들은 타이핑하시고

다른 컴퓨터에서 사용하시는 분들은 저 소스를 복사해서 우클릭하면 붙여 넣기가 된다.
다 작성하고 esc를 누른 후 :wq를 한다

( service nginx restart ) 입력 후 재시작 * 재시작해도 아무 일도 일어나지 않아요
( service nginx status ) 입력하면 속성 창을 볼 수 있다.

( cd )를 누르고 ( /var/www/html ) 입력 후 ( vi index.php ) 입력
내용으로 <?php phpinfo(); 를 넣고 :wq

php-fpm 설정과정

앗 여기서부턴,,,, 빨간 줄 가득~~

설정 완료하셨나요? visual studio code를 켠 후

( 앗 vsCode를 아직 설치 안 하셨다고요? 구글을 켜서 vscode를 검색합니다.

맨 첫 번째 상단에 나오는 홈페이지를 클릭 후 왼쪽 중앙에 보이는 Download for ~~ 을 클릭해서 설치해줍니다)

설치하셨다는 가정하에 폴더를 아무 이름으로 만들어줍니다.

vsCode 폴더만들기

저는 폴더를 hhh란 이름으로 만들었고 이제 여기에서 설정을 해주려고 합니다.

vsCode 확장자 sftp install

확장자에서 sftp를 검색한 후에 ftp-sync를 설치합니다. 저는 이미 설치를 했기 때문에 install 버튼이 없지만

처음 설치하시는 분들이라면 있을 거예요. 버튼을 누르시고 

F1 키를 누르면 커맨드 창이 출력되는데 sftp를 입력하면 커맨드들이 나오고
SFTP: Config를 클릭합니다.

SFTP: Config


클릭하면 파일이 만들어지고 안에 속성에 필요한 것들을 넣으면 된다.

username과 password 바꾸고 아까 설정한 경로로 remotePath를 설정하면 된다.

사진에 나온 host에도 본인의 아이피를 넣어주셔야 합니다. 

*깜박할 수 있음

SFTP 파일 설정


필요한 정보들을 모두 넣고 저장한 후 저장을 한 후 실행하즈아~~

아 맞다 맞다~ php 파일을 안 만들었지! 어서 만들어보자

PHP 파일 만들기

헤헤 이제 다 됐다. 고고고! 그다음에 어떻게 하냐고요??

 

서버에서 컴퓨터로 파일 동기화 하는 방법

이렇게 우클릭을 하고 remote -> local을 눌러 눌러~~

오른쪽에 출력이 나오는데 제대로 안됐다고 떠요. 왜 그럴까요 연결 오류입니다.

 

번거롭지만 아까 써뒀다가 놔둔 cmd창을 다시 켜고 ( vi /etc/ssh/sshd_config )를 입력해줍니다.

ssh 원격 접속 환경설정 파일 수정

모두 주석처리가 되어있을 텐데 저처럼 변경해주시고 저장하고 나오시면 됩니다.

PermitRootLogin : root 사용자의 로그인 허용 여부. (yes, prohibit-password, forced-commands-only, no) 중에서 설정해야 합니다. 설정하지 않으면 prohibit-password 가 됩니다.
yes로 설정하세요.

PasswordAuthentication : 비밀번호 로그인 허용 여부. (yes, no). 설정하지 않으면 yes 가 됩니다.
yes 로 설정하세요.

ChallengeResponseAuthentication : ChallengeResponse라는 특이한 인증 허용 여부. (yes, no). 설정하지 않으면 yes 가 됩니다.
no로 설정하세요.

 

설정하신 후에 ( service sshd reload )를 눌러 재시작 * 눈을 깜빡거렸지만 아무 일도 일어나지 않았습니다.

vsCode로 돌아와 우리가 아까 하다가 오류가 났던 과정을 한번 더 시도합니다.

 remote -> local을 눌러 눌러~~

서버동기화

index.nginx-debian.html 라는 새로운 파일이 생겼습니다.

작동이 잘 되는지 테스트해봐야겠죠?

구글을 켠 후 http://x.x.x.x//index.php 이렇게 입력을 해서 

.php 파일 안에 내가 아까 적었던 <?php infophp(); 가 잘 나오는지 확인하고 나왔다면 성공입니다.

 

수고하셨습니다.

네트워크 공부하세요 : 아이피 구조, 서브넷 마스크, nat 게이트웨이, dhcp 서버


'IT' 카테고리의 다른 글

[Linux] 우분투 기본 명령어  (1) 2020.01.28
ubuntu 서버 18.04LTS 설치 USB 만들기  (0) 2020.01.28
구글 애드센스 넌 뭐냐?  (0) 2020.01.21