설치를 했고, --save를 했는데도 실행이 되지 않는다.


이렇게 했는데 와 명령을 찾을 수 없다는 것인가?


해결했다.


설치를 글로벌로 해줘야 인식한다.


즉, 귀찮아서 매우 간단히 


npm i nodemon


으로 했는데...


뭔가 설치는 된 것 같은데 뭔가 좀 인식이 안 되는 것을 보니 뭔가 문제가 있는 듯 하다.


그래서 다음과같이 다시 설치했다.


npm install -g nodemon


-g로 글로벌 설치 선언을 해줬다.


그 이유를 찾았다


프로젝트의 library가 아니라 시스템에 설치하기 때문에 --global 옵션을 사용해야 한다.



원하던 노드몬이 실행된다.


노드몬이란 무엇인가?


기본적으로 node.js로 만든 파일을 실행할때는 


node xxx.js


와 같이 한다.


이러면 

 

소스를 수정하고, 

Control + C로 노드 서버 실행을 종료하고, 

다시 node xxx.js를 입력하고

개발 화면을 보면 에러가 분명 100% 있을 것이므로... 



또 소스를 수정하고, 

Control + C로 노드 서버 실행을 종료하고, 

다시 node xxx.js를 입력하고

개발 화면을 보면 에러가 분명 99% 있을 것이므로...


또 소스를 수정하고, 

Control + C로 노드 서버 실행을 종료하고, 

다시 node xxx.js를 입력하고

개발 화면을 보면 에러가 분명 98% 있을 것이므로...


또 소스를 수정하고, 

Control + C로 노드 서버 실행을 종료하고, 

다시 node xxx.js를 입력하고

개발 화면을 보면 에러가 분명 97% 있을 것이므로...


이런 무한반복하는 귀찮음을 막아주는 툴이다.


코드 수정 후 저장을 하면 자동으로, 재실행되므로 매우 효율적이다.














Posted by sungho88
,

말 그대로 파일 또는 디렉토리가 없을 경우 나오는 에러이다.


가장 흔한 실수가 생성한 파일명과 호출하는 파일명이 다를 경우이다.


app.get("/", function (req, res) {
res.sendfile(__dirname + "/index.html");
});


이렇게해서 현재 경로(__dirname)을 부르고 + HTML 파일명으로 하는데...


생성한 파일 이름이 위  index.html이 아닐때 이 에러가 발생한다.

Posted by sungho88
,

[AWS] VPC 만들기

서버/AWS 2017. 12. 21. 11:46

AWS에서 이것저것 지우다가 VPC도 지워버렸다. 서브넷도 지웠다. 

뭔지는 몰랐지만, 매우 중요한 것임에는 틀림없다. 

이것이 없어서 EC2인스턴스조차 생성하는데 에러가 발생하였다.

옆에 새 VPC 생성 링크를 클릭해서 VPC 대시보드로 이동한 뒤, 직접 만들 필요없이 기본 VPC만들기를 클릭!

이렇게하면 자동으로 생성된다. 

굳이 직접 만들어서 문제가 발생할 수 있으니, 디폴트 값으로 자동 생성을 추천~



 



Posted by sungho88
,

(참고 자료)

참고 블로그01

참고 블로그02(공홈)


먼저, ELB는 Elastic Load Balancing의 약자. 

EC2를 대상으로 여러대의 EC2 인스턴스로 자동으로 분배하여 웹 트래픽을 분산시켜 주는 역할을 함.


1. 두개의  EC2를 먼저  생성한다. 생성시 Security Group에서 HTTP를 반드시 설정하도록 하자. 


2.왼쪽 탭에서 로드 밸런스를 선택, 로드 밸런스 생성 버튼을 눌러서 진행.



3-1) 원하는 유형을 선택한다. 고성능을 사용할 것이 아니므로 클래식 로드 밸런서를 선택하였다.



3-2) 로드 밸런서 정의에서 로드 밸런서 이름을 기입한다. 그 외에는 건들지않고 다음 버튼 클릭~


하단에 로드 밸런서 포트와 인스턴스 포트


로드 밸런서 포트 : 사용자가 ELB로 접속하는 포트

인스턴스 포트 : ELB에서 웹 서버 인스턴스로 보낼 때 접속하는 포트 


3-3) 보안 그룹 할당! 기존 보안 그룹을 선택할 것인지, 새 보안 그룹을 생성할 것인지 선택!



3-4) 모르겠다. 그냥 패스하고 다음을 클릭하자.



3-5) Ping 경로를 /index.html이 아니라 /으로 변경하자. 그 외에는 그냥 기본으로 두고 넘기자.



3-6) ELB를 통해 로드 밸런스로 등록할 EC2를 체크한다. 하단에 체크는 그대로 놔둔자..


교차 영역 로드 밸런싱 활성화 :

연결 드레이닝 활성화 :


3-7) 태그는 옵션이므로 추가하지 않아도 된다. 그냥 패스~


3-8) 여태까지 했던거 설정 검토!





테스트 타임~


맨 위에서 만들었던 두 개의 인스턴스에 각각 node.js를 설치한다.

적당한 경로에 app.js라는 파일을 생성한다.

그 다음에 서버를 생성하기 위해 다음과 같은 코드를 붙여넣는다.


var http = require("http");

  

http.createServer(function(request, response) {

   response.writeHead(200, {"Content-Type" : "text/html" });

   response.write("Hello ELB - Instance01");

   response.end();

}).listen(80);


response.write("Hello ELB - Instance01");

이 부분을 각각 인스턴스에 다르게 쓴 뒤에 


node app.js를 입력하면 서버가 실행된다.


이제 접속하면 ELB가 적용된다.



Posted by sungho88
,

윈도우에서 Putty를 쓰다가 Mac을 사용하니 미친듯이 쉽다.


먼저, 인스턴스 즉, EC2만든 곳으로 가면 인스턴스 생성 옆에 연결(Connect) 버튼이 존재한다.


연결 버튼을 누르면 연결 방법이 나온다.


첫 번째. 터미널을 오픈한다.(Command + Space한 뒤, 터미널 또는 terminal로 검색)

두 번쨰. EC2 생성할 때 만들었던, 또는 기존에 존재하는 .pem 파일이 존재하는 경로로 이동한다.

세 번째. 그 경로에서 chmod 400 파일이름.pem 을 입력한다.

네 번째. 아래와 같이 예 : 라고 쓰여진 오른쪽 문장을 터미널에 붙여넣는다.


이렇게하면, 터미널에서 접속이 진행되며 yes/no를 물어본다. 이 때, yes를 입력하면 바로 로그인 완료!


이상으로 맥에서 EC2 인스턴스에 접속하는 방법을 정리해보았다.

윈도우의 경우


Puttygen을 찾아서 다운받고,Putty도 다운받고,다시 Puttygen에서 복잡한 과정을 통해

.pem파일을 .ppk로 변경한뒤에 다시 Putty를 열고 생성한 .ppk파일을 더 복잡한 과정을 통해 등록한 뒤에

다시 AWS에 들어가서 IP주소를 복사해서 PUTTY에 붙여넣고 접속.


너무 어렵다.

맥 짱

Posted by sungho88
,

find 라는 명령어로, 디스크에 저장된 각종 파일이나 디렉토리 검색이 가능합니다.



1. 파일 찾기 (파일명 검색)


현재 디렉토리에서, pl 확장자를 가진 모든 파일 찾기

find -name '*.pl'


(현재 디렉토리 밑의 하위 디렉토리까지 다 찾습니다.)



루트에서부터, 즉 전체 하드에서, pl 확장자를 가진 모든 파일 찾기

find / -name '*.pl'




전체 하드 디스크에서, 파일명이 test 로 시작하는 모든 파일 찾기

find / -name 'test*'




전체 하드 디스크에서, 파일명이 .rdb 로 시작하는 모든 파일 찾기

find / -name '.rdb*'




전체 하드 디스크에서, 파일명이 .rdb 로 시작하는 모든 파일 찾기 (-ls 명령 형식)

find / -name '.rdb*' -ls



2. 디렉토리명 찾기


전체 하드 디스크에서, 디렉토리 이름이 test 로 시작하는 모든 디렉토리 찾기

find / -name 'test*' -type d



Posted by sungho88
,

링크 등에 잘못 접속하여 권한이 없거나 어떠한 내부 에러 페이지로 인해 이러한 에러가 발생한다.


이 에러로 서버 정보나 DB 정보 또는 웹 디렉토리 노출등이 발 생할 수 있으므로 


미리 정의해둔 에러페이지를 사용자에게 보여줄 수 있다.


 Apache2의 경우 apache2.conf 파일 제일 밑에 다음과 같이 작성해주면 된다.


ErrorDocument 403 /error.html


이렇게하면 403 에러가 발생했을때, 위 캡처 이미지처럼 Forbidden이 나오지 않고 


error.html 파일이 실행되어 보여진다.


중요한것은 /error.html의 위치는 home 디렉토리가 아니라


웹 루트 디렉토리. 아파치의 기본 경로인 /var/www/html에 저장된다.


따라서, / 는 /var/www/html에 넣은 경로와 같다.


다른 코드들도 이런식으로 적용하면 된다.

Posted by sungho88
,

filename.tar.gz파일을 다운로드 받았다.


이 괴상한 확장자는뭐지. 이걸 풀려면 어떻게 해야하는거지?


그래서 .gz를 푸는 방법을 검색했더니 다음과 같은 명령어를 입력하라고 나왔다.


gzip   -d   filename.gz


그런데, 이렇게 입력했더니 압축이 풀리긴 풀렸는데... 뭐지! filename.tar 파일으로 바뀌었네.


이번엔 .tar 파일을 풀어야하는건가? 


맞다. tar압축을 풀어야 진정한 압축된 파일을 볼 수 있다.


음... 뭔가 압축이 2번 된 것 같은데... 한번에 풀려면 어떻게 해야할까?


.tar.gz 형식의 파일을 한번에 풀려면


tar -xzvf filename.tar.gz


을 입력하면 된다.

Posted by sungho88
,

http://oyeahhh.tistory.com/97

http://blog.naver.com/PostView.nhn?blogId=dme1004&logNo=220857327544&parentCategoryNo=&categoryNo=13&viewDate=&isShowPopularPosts=true&from=search

https://bitnami.com/forums/forums/lampstack/topics/lampstack-unable-to-run-etc-init-d-apache-restart



1. root 권한

sudo bash


2. Bitnami 사이트 접속해서 

https://bitnami.com/stack/lamp/installer


3. Linux Version 선택 Download 버튼 우클릭 후 링크 주소 복사

https://bitnami.com/redirect/to/157571/bitnami-lampstack-7.0.22-1-linux-x64-installer.run

 

4. wget 복사한 링크 주소 붙여넣기(리눅스에 입력)

wget https://bitnami.com/redirect/to/157571/bitnami-lampstack-7.0.22-1-linux-x64-installer.run



5. chmod 명령어를 사용하여 권한을 변경해 준다.

sudo chmod 700 bitnami-lampstack-7.0.22-1-linux-x64-installer.run

 


6. lamp를 설치 한다.

sudo ./bitnami-lampstack-7.0.22-1-linux-x64-installer.run


7. 설치할 때 PhpMyAdmin을 제외한 나머지는 설치 하지 않는다. 전부 n 를 해준다. Bitnami의 설치 위치를 변경하지 않는다면 엔터 해준다. ( 기본은 /opt/lampstack-버전 )


8. MySQL의 root 사용자의 비밀번호를 설정해 준다.

 

9. 설치 완료하면 실행 시켜 준다~

Posted by sungho88
,

물음표로 나오는 한글 깨짐 문제는 이전에 해결법을 작성해놓았다.


서버에서 물음표 출력 시 해결방법


ㅎㅏ지만, 물음표가 아니라 글자가 아예 깨져나오는 현상이 있다면,



이렇게 외계어가 나온다면, 아파치 설정이 잘못된 것이다.


$

 nano /etc/apache2/conf-available/charset.conf


으로 수정 모드를 띄운다음에

#AddDefaultCharset UTF-8

의 앞에 #을 제거하자(#은 주석이다)

그 다음 저장하고 나온 뒤, service apache2 restart로 리스타트를 하면,

정상적으로 나오게 된다.


끝-

Posted by sungho88
,