nodejs

❗️원격서버-nodejs-Git 어떻게 연결하나요?

juju824 2020. 9. 18. 00:53

💫 내가 궁금해서 찾아봤는데 친절하게 정리된 곳이 없어서 포스팅하는 글이다 

 

terminal 을 키고 시작해야 하며 

원격서버를 작동시키기 위해선 먼저 aws ec2 인스턴스를 시작한 뒤 pem key를 받아와야 한다! 

❗️이 pem key는 보안이 굉장히 중요하니 조심히 나만 볼 수 있게 저장해놓자 

 

(보안 상 내 ip, url, pem key등은 가리겠다)

 

 

 

i-MacBookPro:~ ***$ cd desktop

i-MacBookPro:desktop ***$ cd  key/

👉 키가 있는 디렉토리로 옮겨 가기

 

i-MacBookPro:key ***$ ssh -i 'key.pem' ubuntu@***.***.****.****

👉 keyname.pem , ubuntu@ 뒤에는 url 작성 

 

The authenticity of host ‘***.****.****.***’ can't be established.

ECDSA key fingerprint is ~~.

Are you sure you want to continue connecting (yes/no)? yes

👉 물어보면 YES라고 답한다

 

Warning: Permanently added ‘***.*****.***.***’ (ECDSA) to the list of known hosts.

Welcome to Ubuntu !

 

 * Documentation:  https://help.ubuntu.com

 * Management:     https://landscape.canonical.com

 * Support:        https://ubuntu.com/advantage

 

 

3 packages can be updated.

0 updates are security updates.

 

 

*** System restart required ***

 

ubuntu@ip-***-**-**-***:~$ exit 

👉 앞에가 ubuntu~ 시작하면 원격 서버 입장 성공 !!

나는 exit을 한 뒤 chmod 확인하려고 한다 ..

logout

Connection to ***.***.***.*** closed.

 

i-MacBookPro:key $ chmod 400 'key.pem' 

i-MacBookPro:key $ ls -al

total 8

drwxr-xr-x   3 staff   

drwx------@ 33 staff  

-r--------@  1 staff key.pem

👉 이렇게 나오면 chmod 성공

 

i-MacBookPro:key $ ssh -i 'key.pem' ubuntu@***.***.***.***

👉 입장을 해봅시다

 

Welcome to Ubuntu !

 

 

ubuntu@ip-***-**-**-***:~$ git clone https://github.com---.git

👉 원격 서버에 Git 연결, 자신의 깃헙 주소를 갖고 온다

Cloning into …. Success!

 

 

ubuntu@ip-***-**-**-***:~$ ls

Server //server라는 프젝이 있군

ubuntu@ip-***-**-**-***:~$ cd Server/

👉 코드가 있는 프로젝트로 이동

 

ubuntu@ip-***-**-**-***:~/Server$ ls

README.md  bin          middlewares  modules       package-lock.json  public  upload

app.js     controllers  models       node_modules  package.json       routes  views

👉 config file 만들어 줘야 한다 , nodejs에서 config는 보안상 깃헙에 올릴 수가 없어서 클론을 해와도 없기 때문.

 

 

 

❗️이 부분이 내가 가장 헷갈렸던 부분👇

 

ubuntu@ip-***-**-**-***:~/Server$ mkdir database.js

ubuntu@ip-***-**-**-***:~/Server$ ls

README.md  bin          database.js  models   node_modules       package.json  routes  views

app.js     controllers  middlewares  modules  package-lock.json  public        upload
👉 잘못 만들었다 config부터 만들어야 하는데 .. 다시!

 

ubuntu@ip-***-**-**-***:~/Server$ mkdir config

👉 config directory 만들기

 

ubuntu@ip-***-**-**-***:~/Server$ ls

README.md  bin     controllers  middlewares  modules       package-lock.json  public  upload

app.js     config  database.js  models       node_modules  package.json       routes  views

ubuntu@ip-***-**-**-***:~/Server$ cd config

ubuntu@ip-***-**-**-***:~/Server/config$ vi database.js

👉 vi 명령어를 이용하면 파일도 생기는 동시 파일 내용을 바로 작성 가능하다

기존에 Nodejs에서 적었던 파일 복붙하면 된다

 

 

ubuntu@ip-***-**-**-***:~/Server/config$ ls

database.js

...

👉 이런 식으로 config 파일들 작성 해준다.

 

 

ubuntu@ip-***-**-**-***:~/Server/config$ ls

database.js  s3.json  secretKey.js  senderInfo.json

👉config 파일에 필요한건 작성 했다

 

 

ubuntu@ip-***-**-**-***:~/Server/config$ cd ..

ubuntu@ip-***-**-**-***:~/Server$ ls

README.md  bin     controllers  middlewares  modules       package-lock.json  public  upload

app.js     config  database.js  models       node_modules  package.json       routes  views

👉 다시 프로젝트 디렉토리로 이동

 

 

ubuntu@ip-***-**-**-***:~/Server$ rm database.js

rm: cannot remove 'database.js': Is a directory

ubuntu@ip-***-**-**-***:~/Server$ rm -r database.js

👉 아까 잘못 만든 database.js 삭제 : rm -r directoryname

 

 

ubuntu@ip-***-**-**-***:~/Server$ ls

README.md  bin     controllers  models   node_modules       package.json  routes  views

app.js     config  middlewares  modules  package-lock.json  public        upload

ubuntu@ip-***-**-**-***:~/Server$ pm2 start ./bin/www --name [name]

👉 pm2 시작

Command 'pm2' not found, did you mean:

 

  command 'wm2' from deb wm2

  command 'pm' from deb powerman

  command 'pom2' from deb libpod-pom-perl

  command 'pmw' from deb pmw

  command 'pms' from deb pms

  command 'pmc' from deb linuxptp

  command 'pmi' from deb powermanagement-interface

 

Try: sudo apt install <deb name>

 

🙀💢 큰일! Npm 없단다

 

 

ubuntu@ip-***-**-**-***:~/Server$ sudo apt install npm

👉 npm install

 

ubuntu@ip-***-**-**-***:~/Server$ sudo npm install -g pm2

👉 pm2 install

 

loadDep:@pm2/pm2-version- ╢█████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

뭔가 다운되는

 

 

ubuntu@ip-***-**-**-***:~/Server$ pm2 start ./bin/www --name [name]

👉 pm2 list 통해 보면 성공 ! 

                        -------------

 

__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____

 _\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___

  _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__

   _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___

    _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____

     _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________

      _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________

       _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_

        _\///______________\///______________\///__\///////////////__

 

 

                          Runtime Edition

 

짠, 성공했습니다! status 가 online이면 성공

 

✔️ config 파일 만드는 방법은

파일질라

이걸 써도 된다고 한다! 방법은 다양하다고 하니 여러 방법 봐보고 사용해보시길!