728x90

CentOS 6.10에서 APM(Apache + PHP + MariaDB) yum 설치한 환경에서 nodejs 환경 설정


먼저 https://link2me.tistory.com/1559 로 APM 설치과정이 필요하다면 참조한다.


npm install [모듈명] -g

모듈을 전역으로 설치할 때 사용하는 방식이다. g 는 global 을 의미한다.

일반적으로 특정 프로젝트가 아닌 전체 프로젝트에서 공통으로 사용할 수 있는 express-generator 나 nodemon 등을 전역으로 설치한다.


npm install [모듈명] --save

현재 작업중인 프로젝트에 모듈을 설치할 때 사용하는 방식이다.

--save 옵션을 지정하면 현재 프로젝트의 package.json 에 모듈 이름과 버전을 추가한다.


nodejs 는 자체적으로 Web Server 의 역할까지 함께 하므로 별도의 Web Server를 설치할 필요가 없다.


cd /usr/local/nodejs

npm install express-generator -g


이미지에서 보면 lib 디렉토리 하단에 모듈이 설치되는 걸 알 수 있다.


npm install nodemon -g



nodemon 을 설치하는 이유는 Web 서버의 디렉토리에서 npm start 로 nodejs를 실행하면 소스코드를 수정한 사항이 반영되지 않는다. nodemon 을 실행하면 소스코드를 수정할 때마다 서버를 재시작해야 하는 번거로움을 줄일 수 있다.


프로젝트 디렉토리 생성

cd /var/www/html/

express -e bestfood

를 해서 프로젝트 디렉토리를 생성한다.



package.json 에 추가된 모듈을 설치하기 위해 npm install 을 실행한다.

아래 이미지를 보면 node_modules 디렉토리가 추가된 것을 확인할 수 있다.



npm install formidable mysql --save

로 mysql 모듈을 설치한다. (MariaDB 와 내부적으로 95% 이상 동일)


npm  install body-parser


npm install serve-favicon


package.json 파일 내용을 열어보고 미 설치된 것이 있다면 npm install [모듈명] 으로 설치하면 된다.



사용포트 변경

nodejs 는 기본적으로 3000번 포트에서 동작하도록 되어 있다.

방화벽에서 3000번 포트를 open 해주거나 포트를 변경해야 정상 동작한다.

만약 iptime 공유기를 사용한다면, port forwarding 설정을 해줘야 한다.


간단하게 테스트를 위해서 webserver.js 파일을 만들어서 내용을 아래와 같이 적어준다.

IP 주소는 공유기 내부에서 사용하는 IP 주소를 적어준다.

const http = require('http');
// http 모듈에 들어있는 서버 기능을 사용하려면 require()메소드로 http모듈을 불러온다.

const hostname = '192.168.1.11'; // 실제 사용 IP로 변경해야 정상 동작됨
const port = process.env.PORT || 3000

// http 객체의 createServer() 메소드를 호출하면 서버 객체가 반환된다.
http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('Welcome to Nodejs Server!!!\n');
}).listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});
// 이 서버 객체의 listen() 메소드를 호출하면 웹서버가 시작된다. 


node webserver.js

를 하면

와 같이 나온다.


Web 브라우저에서 동작되는지 테스트를 해본다.

http://ipaddress:3000/

ipaddress 는 public ip address 이다.

확인 방법은 http://www.findip.kr/ 으로 한다.


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

cd /var/www/html/bestfood/bin/

vi www

를 해서 보면


이제

npm start

를 하면 npm 을 이용하여 서버를 실행시킬 수 있다.


package.json 파일 내에 scripts 부분이 실행과 관련된 부분이다.


  "scripts": {
    "start": "node ./bin/www"
  },


  "scripts": {
    "start": "node ./bin/www" ,
    "test": "node ./app.js"
  },
로 수정한 다음에 npm test 를 실행시켜 보라.

npm start 로 실행해서 에러가 발생하면, www 파일 내에서 수정할 사항이 있다는 것이다.


설치된 패키지 확인
기존에 설치된 패키지를 확인할 때는 보통 package.json 파일을 열어 dependencies와 devDependencies 항목을 확인한다.
전체적인 의존성 트리를 확인하고 싶을 때는 npm ls 커맨드를 사용하면 된다.


블로그 이미지

Link2Me

,