OS : Ubuntu 18.04 LTS
Node.js : 14.16.0 LTS
Strapi를 이번 프로젝트에 사용하려고 서버에 설치하면서 몇가지 시행착오를 겪었다. 기억하기 위해 기록한다.
1. 먼저 Strapi는 Node.js상에서 동작한다. Node.js의 버전은 짝수의 LTS 버전을 설치해야 한다.
14.16.0 LTS를 설치하였음.
2. yarn create strapi-app my-project --quickstart
또는 npx create-strapi-app my-project --quickstart
입력하여 설치 후에 디렉토리에서 npm install을 입력하여라는 오류가 뜬다.
프로젝트 디렉토리 내에서 sudo npm install을 쓰거나, (or sudo yarn install)
sudo cd 경로 && npm install 명령어(or sudo cd && yarn install)를 통해 strapi 프로젝트 내 package.json를 기반으로 node_module을 다운로드 받는데, 이때 sudo 를 꼭 붙여 주자. 안그럼 오류가 난다. 이것 때문에 시간을 좀 썼다. 아마 포트 관련이나 몇가지 권한 문제로 에러가 나는 것 같다.
3. 외부에서 API로 땡겨 쓸 예정이라면 바로 yarn develop, npx run develop 하지 말고, 1337 포트(아니면 사용자 설정한 strapi 포트)를 우분투 내에서 열어야 한다.
sudo iptables -I INPUT 1 -p tcp --dport 1337 -j ACCEPT
4. 실행 시에도 sudo를 붙이자.
5. 터미널 세션이 닫히면 strapi도 닫히는데 항시 작동시키기 위해 pm2를 이용하여 데몬으로 굴릴 수 있다. 이때 설치도 sudo 권한으로 설치
sudo yarn global add pm2
프로젝트 폴더 최상단에 server.js를 만들어야 한다. (기본으로 말하면 my-project 폴더)
sudo vi server.js
const strapi = require('strapi');
strapi().start();
아래 명령어로 데모나이징 할 수 있다.
sudo pm2 start server.js
간혹 같은 세션에서 돌렸다면 포트 점유로 안될수 있으니, 터미널이나 ssh 세션을 재접속해서 하자.
느낀 점
처음엔 간단히 쓸 요령으로 Strapi를 골랐는데, 생각보다 시행착오가 있었다. 앞으로는 기억해서 기민하게 꺼내 쓸 수 있을 것 같다. 처음 Strapi를 사용한다면 Postgresql과 같은 것을 바로 붙여 쓰지 말고, --quickstart로 sqlite 기반의 셋업을 해 보는게 낫다. postgresql까지 같이 세팅하면 점검해야 할 변수가 너무 많아진다.