본문 바로가기

Self-improvement/연구&개발

[파크야의 취미생활] 7. 라즈베리파이 NGINX 구축

[파크야의 취미생활] 7. 라즈베리파이 NGINX 구축






 인적으로 '임베디드' 에 관심이 많습니다. 그래서 제 취미생활중 하나가 바로 이런걸로 '장난(?)' 하는걸

즐겨하죠.  탱크라던지 SCV 로봇이라던지 프로그래밍을 입력후 동작하게 만드는 매력에 빠져 있었는데요.


아무래도 제 주력은 '해킹'이다 보니까 임베디드를 해킹 하는것에 관심이 쏠렸습니다.

그러다가 최근에 주목받기 시작한 '싱글보드컴퓨터' 인 '라즈베리파이(Raspberry pi)'가 눈길을 끌더군요

라즈베리파이란, 영국의 라즈베리파이재단이 학교에서 컴퓨터 및 과학 교육을 증진시키기 위해 만든 

싱글보드컴퓨터(Single-board computer) 를 말합니다. 작년 2월 영국을 시작으로 100만대 이상 팔리며 인기를

끌고 있는 제품이죠.


위의 사진이 바로 저의 '싱글보드 컴퓨터' 인 라즈베리파이 입니다. 크기가 정말 작습니다.

신용카드,버스카드 크기만 합니다.


비교를 위해 비교샷 투척 합니다 ㅎㅎ




[ 버스카드와의 크기 비교사진 ]



 위의 사진은 제 버스카드와의 비교모습 입니다. 정말 한손에 잡히고, 주머니에 쏙 들어갈

정도로 작은 컴퓨터 입니다.


싱글보드컴퓨터(Single - board conputer)는 줄여서 SBC 라고 부르며 하나의 보드 위에 CPU 및

메모리, 입출력 장치를 장착한 하나의 '컴퓨터' 라고 할 수 있습니다. 


라즈베리파이가 작년에 영국에서 개발되었다고는 하지만 싱글보드컴퓨터의 역사는 생각보다

훨씬 오래 되었습니다. 1976년부터 나왔다고 알려져 있습니다. 시초는 X86의 조상쯤 되는 인텔의

C8080A 및 eeprom인 c8080A C1702A가 장착된 "dyna-micro' 라고 알려져 있습니다.


후에 가장 유명한 것은 라즈베리파이의 선배격인 영구의 "BBC Micro" 입니다.

흔히, ""이라고 불리우는 이 싱글보드컴퓨터는 MOS Technology 의 2 Mhz 6502/6512 8비트

CPU,16kb 의 메모리르 탑재하였습니다. 


주목적은 학교에서 컴퓨터 교육을 위해 탄생되었으며, 영국 BBC의 후원으로 영국의 컴퓨터 교육에

큰 획을 그었습니다. 그 유명세를 이어가는 것이 바로 작년에 나온 '라즈베리파이' 입니다.




[ 싱글보드컴퓨터의 종류 ]




제가 나중에 다른 싱글보드컴퓨터로 서버를 구축하게 된다면, MK802 IIIS 모델을 해보고 싶습니다.

모두 휴대하기 편하지만 이 모델은 USB형태이기 떄문에 더 편리 할것 같습니다.







차세대 HTTP서버 'NGINX' 구축하기


 엔진X(Nginx)는 얼마전에 설치하는 방법을 연재 했습니다.

간단하게 개요를 말씀드리면, 아파치를 대체할 차세대 HTTP 서버 입니다. 가볍고 성능도 좋고 

유명한 웹은 엔진X로 돌아가는 사례가 많으며 무섭게 성장하고 있습니다.


그래서 저는 라즈베리파이에 차세대 HTTP 서버인 'Nginx' 를 구축하고 제 프로젝트 '웹해킹' 시니리오

를 적용해보고 싶은 계획이 있습니다. 


ASP언어로 웹해킹을 연습했는데 NGINX를 구축하면, 언어는 PHP를 쓸거고 DB는 MY-SQL을 설치할 것입니다.

그래서 웹해킹도 PHP쪽으로 새로 공부해야 하는 실정입니다 ㄷㄷ;;


아무튼 설치를 시작해 보겠습니다.


 

[트러블 슈팅]



문제1. 라즈베리파이 공식홈페이지 ( http://www.raspberrypi.org/downloads ) 에서 

아크리눅스 다운로드후 http://sourceforge.net/projects/win32diskimager/  에서 'win32diskmager' 다운받은후 실행시에 'write' 버튼을 누르면 구문 오류가 나는 경우



해결방법:  사용자계정명을 '영어' 로 바꾸고 하위경로도 모두 영어로 바꿉니다.

(저도 이거 안되서 계속 헤매다가 찾았습니다...)



문제2. 아크리눅스를 SD카드에 설치후에 라즈베리파이 USB에 물려서 모니터(또는 TV)에 연결했는데

화면이 안나올떄


해결방법: USB로 꼽아서 안되면 라즈베리파이에 SD카드로 꼽는 구멍에 꼽아서 해보면 나옵니다.



문제3. 무선인터넷USB를 라즈베리파이에 꼽았는데 인터넷이 안될떄


해결방법: 이것도 문제2번처럼 랜선을 다이렉트로 꼽아주면 자동으로 인식 됩니다.




문제4. TV에 설치후에 진행하는데 글씨가 너무 작아서 불편할떄


해결방법: 노트북 또는 PC에서 푸티(Putty)를 설치후에 SSH원격 접속으로 작업을 하면 

수월합니다.







라즈베리파이 TV에 연결후에 엔터를 한번 누르면 아이디와 비번을 물어봅니다.

슈퍼유저인 아이디와 비번 모두 ' root ' 를 눌러서 # 상태로 옵니다.


df 를 입력하면 용량이 확 줄어 있습니다.

저는 16기 sd카드를 새거 사서 바로 아크리눅스 깔았는데 1.7Gb 밖에 안남아 있습니다.

이럴떄는 fdisk /dev/mmcbk0 이라고 입력후에 p를 누릅니다.


2개가 나오는데요. 2번을 삭제해줍니다.

d를 누르고 2를 선택 후에 파티션을 새로 만들어야 하기 떄문에 n 을 눌른후에 p를누르고  파티션 번호인

2번을 눌러줍니다.


섹터설정은 디폴트로 하기위해 엔터를 게쏙 입력해주고 w를 눌러서 저장 후 빠져 나옵니다.

이제 reboot 명령으로 재부팅을 해주고 


resize2fs /dev/mmcblk0p2  라고 입력해 준후에

df -h를 입력하면 용량이 16gb sd카드기준 15Gb라고 나오는 것을 확인할 수 있었습니다.


이제 인터넷이 되는지 Ping yahoo.com 을 입력후 Ping 잘 나간다면 yum과 같은 명령어인

pacman -Syu

pacman -S nginx 


로 설치를 진행합니다.





#마크가 액티브하게 움직이며 설치가 진행 되는것을 확인할 수 있습니다.


systemctl enable nginx.service

systemctl start nginx.service


를 입력 해 줍니다.


vi /etc/nginx/nginx.conf

를 입력 하고 아래와 같이 수정해줍니다.



(p.s 여기서 부터는 노트북으로 Putty로 원격접속을 해서 녹색글씨로 바꾸었습니다.)



다 수정했으면 esc 키를 누르고 :wq!  라고 입력해서 저장후 빠져 나옵니다.


pacman -Sy php-fpm

pacman -Sy php-gd

pacman -Sy php-apc





설치를 진행 합니다 질문이 나오면 무조건 Yes 입니다.

우리는 긍정맨이니까요 ^^


systemctl enable php-fpm.service 


라고 입력해서 서비스를 활성화 시켜 줍니다.


아크리눅스는 정말 최소한의 것만 설치 되어 있기 떄문에 가벼운 장점도 있지만 일일히 설치해 줘야 하는

단점도 공존 합니다. gcc 라던지 make 도 설치를 해줘야 합니다.


pacman -Sy php-pear

pacman -Sy autoconfig

pacman -Sy make

pacman -Sy gcc


여기서 autoconfig 가 설치가 안되는 경우가 있을 수 있지만 그냥 다음거 설치하면서 계속 진행 해 줍니다.



vi /etc/php.ini 를 입력후에


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Dynamic Extensions;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


라는 섹션이 있습니다. 대략 set number 863번쯤? 인것 같습니다.

se nu 라고 입력하면 번호가 출력되니 836번쯤 이동 하시면 쉽게 찾을 실 수 있을 겁니다.


여기서 extension=apc.so 를 추가 입력해 주고

아래로 조금만 내려가다보면 mysql.so , mysqli.so 를 찾으신후에 ; 를 지워줍니다. 

;가 주석역활을 하기 때문 입니다. 

그리고 wq! 를 입력후에 역시 저장후 빠져 나옵니다.



systemctl start php-fpm 


을 입력해 줘서 php를 작동 시킵니다.


이제 mysql를 설치해줘야 합니다


pacman -Sy mysql 입력후 설치를 진행 합니다.


system enable mysqld

system start mysqld

mysql_secure_installation


마지막 mysql_secure_installation 까지 입력을 하시면 mysql 창으로 이동 되는데요

여기서 비밀번호를 설정해 줍니다.

그후에 몇가지 질문에 y or n를 입력해주고 


노트북이나 pc에서 라즈베리파이의 아이피 주소를 입력 해봅니다.





두둥!!! 엔진X 성공~!