우분투 웹서버 구축 및 연동하기
저번 시간에 이어서 두 번째 시간으로 웹 서버 구축과 연동하기를 진행해보도록 하겠습니다.
아 이게 사진이 없으면 좀 답답하시려나요?
그렇다면 같이 진행해보죠~~
저번 시간에 어디까지 했냐면
- 우분투 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는 웹 서버 소프트웨어로, 가벼움과 높은 성능을 추구, 웹 서버, 리버스 프록시 및 메일 프록시 기능을 가져
홈페이지를 만들 때 테스트 서버로 활용하기 좋더라고요.
로그인, 게시글 등록, 실시간 검색어 등등 보여주려면 동적인 페이지 구현이 필요한데 웹 서버 이외의 외부 프로그램에서 처리하는 방법을 사용합니다.
우리가 설치하려는 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를 보면
( cd sites-available ) 경로로 들어간다
( vi default )를 작성하면 sites-available 속성 창으로 들어가게 되는데
설정을 해준다.
*여기서 VI는 일종의 에디터입니다.
나중에 vi에 대해서 자세하게 알아보는 시간을 갖겠습니다.
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
앗 여기서부턴,,,, 빨간 줄 가득~~
설정 완료하셨나요? visual studio code를 켠 후
( 앗 vsCode를 아직 설치 안 하셨다고요? 구글을 켜서 vscode를 검색합니다.
맨 첫 번째 상단에 나오는 홈페이지를 클릭 후 왼쪽 중앙에 보이는 Download for ~~ 을 클릭해서 설치해줍니다)
설치하셨다는 가정하에 폴더를 아무 이름으로 만들어줍니다.
저는 폴더를 hhh란 이름으로 만들었고 이제 여기에서 설정을 해주려고 합니다.
확장자에서 sftp를 검색한 후에 ftp-sync를 설치합니다. 저는 이미 설치를 했기 때문에 install 버튼이 없지만
처음 설치하시는 분들이라면 있을 거예요. 버튼을 누르시고
F1 키를 누르면 커맨드 창이 출력되는데 sftp를 입력하면 커맨드들이 나오고
SFTP: Config를 클릭합니다.
클릭하면 파일이 만들어지고 안에 속성에 필요한 것들을 넣으면 된다.
username과 password 바꾸고 아까 설정한 경로로 remotePath를 설정하면 된다.
사진에 나온 host에도 본인의 아이피를 넣어주셔야 합니다.
*깜박할 수 있음
필요한 정보들을 모두 넣고 저장한 후 저장을 한 후 실행하즈아~~
아 맞다 맞다~ php 파일을 안 만들었지! 어서 만들어보자
헤헤 이제 다 됐다. 고고고! 그다음에 어떻게 하냐고요??
이렇게 우클릭을 하고 remote -> local을 눌러 눌러~~
오른쪽에 출력이 나오는데 제대로 안됐다고 떠요. 왜 그럴까요 연결 오류입니다.
번거롭지만 아까 써뒀다가 놔둔 cmd창을 다시 켜고 ( vi /etc/ssh/sshd_config )를 입력해줍니다.
모두 주석처리가 되어있을 텐데 저처럼 변경해주시고 저장하고 나오시면 됩니다.
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 |