티스토리 뷰

728x90

AWS EC2 서버에서 프런트엔드를 띄우려던 중 발생한 오류이다.

최종적으로 npm run start를 하길 원하고 이 과정에서 발생한 오류들에 대해 해결방법을 남겨보았다.

 

* 나의 경우는 프론트엔드 release브런치로 push 할 경우 github action - S3 - CodeDeploy - EC2의 과정을 진행한다.

이경우는 백엔드와 프론트에 모두 적용되었다.

 

⬇️ 참고 내용

2022.12.16 - [4. hellomyteam 개발일지] 서버/것 허브액션을 구축하며 느낀 점들 정리

 

 

 

1. 서버와 로컬 버전 확인 및 맞추기


 

로컬과 서버환경의 nodenpm의 버전확인

1. 로컬 터미널에서 npm 버전 체크

npm -v

2. 로컬 터미널에서 node 버전 체크

node -v

 

3. 서버 ssh 터미널 접속 후 npm 버전 체크하기

npm -v

4. 서버 ssh 터미널 접속 후 node 버전 체크하기

node -v

 

서버환경의 node버전 다운그레이드 하기

나 같은 경우는 로컬 환경에 맞췄다.

 

1. n 플러그인 설치

sudo npm install -g n

2. 특정 버전 설치

n 14.17.3
n [내가 설치하려는 버전]

 

 

서버환경의 npm버전 다운그레이드 하기

npm install -g npm@6.14.13

서버환경의 npm/node버전 변경

 

여기까지 로컬과 서버 환경의 버전을 맞췄다.

그리고 npm run start를 해보자.

 

실행이 잘된다면 포스팅글을 더 볼 필요 없고,

permission denined가 발생한다면 아래 글을 더 보자

 

2. permission denied 해결하기


에러발생

The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR! 
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running

permission denied이 발생하는 원인

permission denined를 해결하기 전에 먼저 권한에 대해 알아야 한다.

글에 들어가기 전 로컬환경과 가상서버 환경을 분리해서 생각해야 한다.

 

예를 들어

내가 카카오톡(외부서버)을 이용한다고 해서 카카오톡(외부서버)으로부터 어떤 행위를 해도

내 노트북(shut down)을 끌 수 없다.

누군가 외부에서 내 노트북을 조작할 위험으로부터 보호하기 위함이다.

 

이런 식으로 우리가 AWS 서버를 빌려서 npm install을 하고,

node_modules를 설치하는 과정에서 permission denined가 발생하는 것이다.

 

 

permission denied 해결방법

 

먼저 node_modules를 삭제한다.

 

권한 주기

sudo chown -R $USER /usr/local/myappF/frontend

sudo: 관리자 권한으로

chown: 파일의 소유자를 소유자가 지정한 사용자로 지정한다는 뜻 

$USER: ec2-user(root계정)

파일 경로: node_modules 상위 폴더까지

ec2-user가 root계정

 

3.npm run start 실행


 

 

 

 

혹시 더 좋은 방법이 있다면 댓글로 피드백 부탁드리겠습니다! 감사합니다.

 

728x90
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday