2013년 10월 10일 목요일

1주택 수가구 전기요금 계산하기

 어느날이였습니다. 직장에서 끝나고 집에 돌아오니 아버지께서 어머니와 애들 말싸움을 하고 계시더군요. 주제인즉 다른집에서 사용하는 1주택 수가구 전기 요금과 보통 가정 일반요금의 차이에 대해서였습니다.

아버지: (눈을 부릅 뜨면서)"내 말이 맞아! "
어머니 :(황당하다는 표정으로)"아니라니깐, 수가구가 더 적게 나온다니깐."
아버지: (뭔가 약오른 표정)"흥 ...그래도 맞는데....중얼중얼, 내 말을 안믿어......"



흐음, 그걸 지켜보는 나는 바로 이 표정....

이 사진만은 절대 무단사용하면 안되. 귀여운 내 아이

1주택 수가구 요금제

간단히 정의하면 한 집에 2가구가 살고 있다면 전기 사용량을 절반씩 나눈 상태에서 계산한다는 것입니다. 이해가 가지 않는다구요?


보통 가정용 1주택 전기요금 계산법은 다음과 같습니다.

처음 100KWh 까지는 59.1원을 곱하기
다음 100KWh 까지는 122.6원을 곱하기
다음 100KWh 까지는 183원을 곱하기
다음 100KWh 까지는 273.2원을 곱하기
다음 100KWh 까지는 406.7원을 곱하기
500KWh를 초과한 요금은 690.8원을 곱하기

만약 473 KWh을 사용했다면 계산법은
(100KWh * 59.1원) + (100KWh * 122.6원) + (100KWh * 183) + (100KWh *273) + (73KWh * 406.7원) = 5910원 + 12260원 + 18300원 + 27300원 + 29689.1원 = 93590원이네요.

상당히 부담이 많이 가고 애들이 있는 집이라면 이정도는 약과이죠.

돈이 날라다닌다. 흐흐흐 ㅡ0ㅡ


그럼 1주택 수가구 전기요금 계산법을 보면 이렇습니다. 1주택에 대해 나온 전기 사용량을 각 가구수가 나누어서 사용량의 요금을 계산하는 방식입니다.

우선 전기 사용량을 가구수로 나눈 상태에서 계산합니다. 예시로 473KWh의 절반236.5KWh

철수네 집 = (100KWh * 59.1원) + (100KWh *122.6원) + (36.5KWh * 183원)
철수네 집 = 5910 + 12260 + 6679.5 = 24849.5원

영희네 집 = (100KWh * 59.1원) + (100KWh *122.6원) + (36.5KWh * 183원)
영희네 집 = 5910 + 12260 + 6679.5 = 24849.5원

두 집을 합하면 24849.5원 *2 하면 5만원 정도 하네요.10만원 가까이 되던 요금이 절반으로 줄었네요. 물론 전기를 사용하는 계약조건에 따라 요금이 더 추가 될 수 있지만 평범한 집이라면 이 계산법이 맞을 것입니다.


아버지를 내 방으로 살짝 부르고 나서 귓속 말로 이랬습니다.

나 : (이 도표 보여주면서)"아버지 아버지가 한 말 틀렸어."
아버지 : ...(아무 표정이 없다)
나 : (웃으면서)"엄마한테는 비밀로 할테니 가만히 있으셔요."




2013년 9월 30일 월요일

LED 손전등을 헤드 랜턴으로 만드는 방법(엄청 간단함)

 혼자서 일을 하다보면 손전등을 들 손이 부족한 경험이 있지 않으신가요?

 저는 집안의 전기용품 수리 및 설치부터 간단한 인테리어 시공, 가끔은 컴퓨터 수리까지 도맡아 하다보니 팔이 열개였으면 좋겠다는 생각을 많이 합니다. 특히 천장에 조명을 설치할 때에는 정말이지 먼지가 어디서 모였는지 꼭 새로 빤 옷을 더럽히고 눈에 들어갑니다.
(시공이라 해봤자 세면기와 음수대 고치기, 도배와 시트지 바르기 정도, 간단한 조명등 설치와 스위치류 고치기 등 입니다. 절대 거창하지 않아요.ㅡ0ㅡ =333)


모든 필요한 공구를 팔에 들고 떨어지는 먼지를 다 막아 주겠노라...
 손전등은 나의 맑은 눈으로 모든 것을 보이게 해주고 깊숙히 잘 안보이는 물체를 보이게해서 신경질나는 상황을 없애 줍니다. 하하하, 이런 생각 저만 하나요?

 이런 면에서 헤드랜턴은 작업자의 손을 덜어주고 원하는 방향으로 빛을 빠르게 비출수 있습니다. 그런데 헤드랜턴을 따로 구입하기는 좀 돈이 아깝다는 생각이 듭니다. 손전등에 비해 손으로 잡고 사용하기 쉽지 않고, 자전거 라이트로 활용하기도 힘듭니다. 또한 LED랜턴을 제대로 활용하고 유지하려면 알카라인 전지보다는 18650같은 충전지가 꼭 필요한데, 가격이 만만치 않습니다. LED랜턴 하나당 충전지 두개, 충전기 하나, 전용 충전아답터 하나, 이 세가지 조합이 꼭 필요합니다. 사용하는 방식이나 시간에 따라서는 충전지와 충전기, 아답터가 더 필요할 수도 있습니다. (18650충전지 2600mAh는 개당 6000원, 충전기 8000원, 전용 아답터 1만원)

다 합해서 3만원임


 이렇듯이 LED랜턴을 제대로 활용하고 유지하는데에는 비용이 많이 듭니다. 그렇다면 기존에 있던 손전등을 헤드 랜턴으로 쓰는 것이 더 활용적이지 않을까요? 잘만 활용하면 비전문영역에서는 오히려 돈을 절약하는 결과를 가져올 수 있습니다.


===================================================
그럼 본론으로 들어가서 필요한 도구와 공구를 소개하겠습니다. (재료비 1000원)

1. 헤어랜턴 용 헤어밴드(또는 천으로 된 고무밴드)

누가 버리는 것을 주워와서 재활용 한 것입니다

고무밴드로 헤어밴드를 만들어도 됩니다.


2. 손전들을 자전거에 고정해주는 거치대용 부품 (이건 반드시 필요합니다)
















3. 운동화끈

====================================================
이제 만드는 법을 소개 합니다. (1초만에 끝납니다 잘 보세요.)




준비된 헤어밴드에 거치대 부품 밑판을 운동화 끈으로 묶어주세요. 끄~~~~읕? 응?

정말 단단하게 고정됩니다.
거치대가 없으면 헤어밴드를 실로 꼬매서 만드셔도 됩니다.


2013년 4월 22일 월요일

Hiren's bootCD에 Windows 7 PE 포함시키기( PHINOCOM SSD펌웨어 업그레이드 방법)

 어느 날이였습니다. 이번에 새로 올라온 PHINOCOM SSD의 펌웨어 v5.3을 업데이트 해야하는데, 이 SSD는 다른 제조사의 SSD와 차이점이 있었습니다. 첫 번째, SSD에 운영체제가 실행되는 상태에서는 펌웨어 업데이트가 안되며, 두 번째, 펌웨어를 업데이트하면 SSD가 포맷됩니다. 그리고 저는 노트북 한 대만 쓰기 때문에 부가적으로 운영체제를 설치할 저장소가 없었습니다. (다른 SSD도 이러나요?)


 그래서 어떻게 할까 고민하던 중 Wndows 7 PE에서 펌웨어를 업데이트하면 어떨까 하는 생각이 들었습니다. 작동하는 방식은 Hiren's bootCD와 같으니  Wndows 7 PE를 포함시키기로 했습니다. 어렵게 구한 Windows 7 PE인데, 한글을 지원하며 PE 안에서 간단한 프로그램도 실행할 수 있습니다. (대부분의 PE에서는 프로그램이 실행안됨)

부팅 된 후 모습
PE를 간단히 설명하면 USB 메모리나 디스크같은 이동식 디스크에 복잡한 설치없이 쓸 수 있는 운영체제입니다. 아무 컴퓨터나 부팅되며,(Windows가 설치되는 컴퓨터에 한함) 고스트 같다는 느낌을 받기도 합니다.



$Hiren's bootCD에 windows 7 PE 포함시키는 방법$


1. Windows 7 PE를 다운로드 받은 다음 압축을 풀어줍니다.

    Windows 7 PE에 관한 것은 여기를 찾아가 보세요.




2. Hiren's bootCD가 설치 된 USB메모리를 USB포트에 꼽습니다. 그리고 'HBCD'폴더를 찾습니다.

3. 'HBCD'폴더안에 Windows7 PE.iso파일을 복사하고 파일 이름을 WIN7PE로 바꿉니다. (두 파일중에 아무거나 복사하세요)



4. 'hbcd'폴더 안에 있는 menu.lst파일과 USB루트에 있는 menu.lst파일을 메모장으로 열고 다음을 추가합니다.

뭐라고 쭈~욱 나오고
title Mini Windows Xp\nRun Antivirus and other windows programs
# example password: test
# password --md5 $1$gNe0$KZPOE8wNbTNSKOzrajuoB0
find --set-root /HBCD/XP/XP.BIN
#map --mem /HBCD/XP/f6drivers.img (fd0)&&map --hook
chainloader /HBCD/XP/XP.BIN

이렇게 나오는데, 이 다음칸에 아래를 입력합니다.

title Windows 7 PE
ls /HBCD/WIN7PE.ISO || find --set-root /HBCD/WIN7PE.ISO
map --mem /HBCD/WIN7PE.ISO (0xff)
map --hook
chainloader (0xFF)/BOOTMGR || (0xFF)

끝났습니다. 모든 프로그램이 제대로 부팅되나요? 한 번 확인해 보세요.

Hiren's bootCD를 USB메모리에 설치하기

 컴퓨터가 갑자기 에러가 나거나 파티션에 이상이 있을 때 여러분은 어떻게 대응하시나요?  당연히 하드웨어를 점검하는 것이 우선이지만 하드웨어에 이상이 없다면 100% 프로그램에서 문제가 생긴 것입니다. 요즘 벼레별 응급 프로그램이 다 있지만 전 한 가지만 씁니다.

Hiren's bootCD입니다. 기능도 많은데, 대표적으로 파티션 나누는 기능, windows xp pe부팅기능, 메모리 테스트 기능, 바이러스 검사 기능 등 아주 다양합니다. 여기서 잠깐 소개해 드렸는데, 아무래도 요즘 바이러스다 뭐다 해서 포맷을 많이 할 것 같아서 USB메모리에 hiren's bootcd를 설치하는 법을 소개하겠습니다.


&  USB 메모리에 hiren's bootcd를 설치하는 법 &

1. Hiren's bootCD와  USB메모리에 grup을 설치해 주는 프로그램을 다운받습니다.
(Hiren's bootCD는 외국 사이트라 시간이 오래 걸리니 그 동안 인터넷 서핑이라도 하세요.)

 Hiren's bootCD 다운로드 링크1
 Hiren's bootCD 다운로드 링크2
 여기에서 bootice_v0.9(2011-0512)_ko를 다운받습니다.

(bootice_v0.9를 소개하는 이유는 디스크 포맷 프로그램과 grup설치 프로그램이 합쳐져 있어서 편리하기 때문입니다. 스누피님 홈피에 보면 다른 grup설치 프로그램도 있는데, 디스크 포맷 프로그램을 따로 써야돼서 사용하는데 헷갈릴 수 있습니다. 또 스누피님의 grup설치 프로그램은 AVAST에서 바이러스로 잡습니다.)


2. 압축을 푼 다음  bootice_v0.9(2011-0512)_ko.exe를 실행합니다.



3. '대상 디스크'에서 해당 USB 메모리를 선택 후 FAT32 파일 시스템로 포맷합니다.
(왜냐하면 Hiren's bootCD는 NTFS 시스템에서 실행되지 않기 때문입니다.)

'파티션 관리'를 누르면 포맷상자가 나옵니다.
다음 순으로  클릭합니다. (그림보다는 깔끔하니 좋네요...ㅎㅎ)

'파티션 관리' 누름 -> 'USB 디스크 재포맷'(하단) 누름 -> 'USB-HDD모드(단일 파티션)' 누름 -> 하단에 '실린더 정렬' 체크 -> '다음'누름 -> FAT32 선택 -> '확인'누름


3. USB메모리에 grup을 설치합니다.

'MBR 작업'을 누릅니다.
다음 순으로 진행합니다.

' MBR 작업' 누름 -> 'GRUP4DOS 0.4.5b MBR(grldr.mbr)'을 선택 -> '설치설정'을 누름 -> '디스크로 저장'을 누름


4. 다운로드 받은 hiren's boot cd의 압축을 풀어줍니다. 그리고 안에 보면 Hiren's.BootCD.15.2.iso 파일이 있는데,  압축을 풀어 주거나 버추얼 디스크로 읽습니다.


5. USB 메모리에 hbcd'폴더를 통째로 복사하고 'grldr' 파일과 'menu.lst' 파일도 복사합니다.

'grldr' 파일과 'menu.lst' 파일 - 'Hiren's.BootCD.15.2' 안을 보면  'hbcd'폴더 안에 있음.
'hbcd'폴더 - 'Hiren's.BootCD.15.2' 안에 있음.


끝났습니다. 이것을 이용하면 SSD에서 Windows 7을 바로 설치할 수도 있습니다. USB메모리로 Wndows 7설치? 그거 SSD에 바로 설치하는 것이랑 속도가 틀립니다. Window 7 설치시간이 10분입니다. 처음 부팅할 때부터 설치하고 드라이버 잡는 시간까지 포함한 시간입니다. 그리고 HDD에도 바로 설치 가능한데, USB메모리로 설치하는 것보다 빠릅니다.

거짓말 같다구요? 정말입니다. 해 보세요.
도움링크-Windows 7을 하드(HDD)에서 설치하기

2013년 4월 10일 수요일

모듈 개념의 외장하드 케이스(ineo i-NA216U2 Plus USB 3.0)

이 제품은 업체에서 제공하지 않았습니다. 개인이 직접 구입한 것입니다.

 노트북을 써 보면 외장하드가 꼭 필요합니다. ODD 베이에 하드를 넣는 방법도 있지만 그러면 CD나 DVD를 돌리지 못해서 좀 그렇습니다. 안쓰더라도 예비용으로 꼭 있어야 뭔가 마음이 편안하고 혹시나 하는 상황에 대비하는 것 같은 생각이 들기 때문입니다. (저만 그런가요?)

 항상 부르짖지만 값싼 가격으로 엄~청난 퍼포먼스를 내면서도 비싸보이는 그런 것을 찾고 있었습니다. (이런게 있나요?ㅎㅎ)

 외장하드 케이스도 마찬가지로 바라라고 있었는데, 조사해 보니 요즘 벼레별 게 다 나와 있었습니다. 신기한 것도 있었는데, 케이스 겉면에 비밀번호를 입력해야 하드안의 자료를 읽을 수 있습니다.(하드디스크 안의 자료가 암호화 되어서 암호를 넣지 않으면 읽을 수 없음)

 구매한 제품은 ineo i-NA216U2 Plus USB 3.0 입니다. 이것은 예전 외장 하드 케이스와는 다른 행태를 취하고 있습니다. 모듈개념이라고 부르고 싶은데, 케이스와 접속부분 딱 두 가지로 나뉘어 있습니다. 예전에는 케이스에 하드와 접속단자를 나사못으로 고정해서 한 가지를 만드는 방식이였지만 이것은 접속단자와 케이스를 나누어서 각각을 활용할 수 있고 같이 활용 할 수도 있는 형태입니다.

제품 이름에서 아시겠지만 USB 3.0을 지원하며, USB 2.0에서도 이동 속도를 23MB/s를 뽑아줍니다.

왼쪽이 접속단자이고 오른쪽이 하드케이스 입니다.

그리고 접속단자가 분리되어 있어서 하드 탈착이 많은 저에게는 딱 알맞은 제품입니다.

탈부착이 많은 사람에게는 정말 편해요.


외장 케이스가 하드 접속부분과 접속단자 접속부분을 잡아줘서 흔들리거나 깨질 염려를 덜었습니다.



물론 단점도 존재합니다.
  • 연결 케이블이 짧습니다.  - 연장 케이블을 쓰면 됩니다.
  • 접속단자에 USB선이 합쳐져 있어서 나중에 선이 문제시 따로 교체하지 못하고 전체를 교체해야 합니다. - 오히려 분리된 것이 노이즈를 더 타는 경우도 있습니다. 때 되면 다른 새거 또 사시면 되죠.
  • 케이스 재질이 조금 약해 보입니다. 하드를 보호해야 하는 케이스가 좀 약해 보입니다.
  • 케이스를 고정하는 고정쇠가 약해보입니다. (문이 열려버리면 그냥 하드가 가출을 하죠!) - 칼라 고무밴드로 묶으세요, 멋과 안전을 지킬 수 있어요.

2013년 4월 2일 화요일

NGINX 다운로드 링크 접속 시 로그인 걸기(POGOPLUG SERIES 4용)

1. 시작하기 전에...

nginx 로그인은 http://wiki.nginx.org/에서 참조하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

 nginx에서 로그인 설정을 하려던 것은 제가 ftp 서버 설정을 모르기 때문입니다. 그래서 ftp로그인과 비슷한 기능이 무엇이 있을까 생각하던 중 nginx에서 로그인 기능이 있다는 것을 알았습니다. ftp는 잘못 설정하면 상위 폴더와 모든 권한을 줄 수 있기 때문에 상당히 조심해야 합니다. (아자, 드디어 찾아냈습니다.ㅎㅎㅎ)


2. nginx 다운링크에 암호거는 방법

2-1. 우선 다음 구문을 추가해 줍니다.

nano /etc/nginx/nginx.conf 를 SSH상에서 입력합니다.

server {
        listen       80;
        server_name  localhost

쭈~욱 나오고 기존에 추가한 다운로드 구문에 다음을 추가합니다.

location /down {
            alias   /srv/down;
            autoindex   on;

            auth_basic "Restricted";
            auth_basic_user_file /etc/nginx/security/.htpasswd;
            index index.html index.htm index.php;
            access_log      /var/log/nginx/down.access.log;
            error_log       /var/log/nginx/down.error_log;

            charset utf-8;
}

auth_basic_user_file /etc/nginx/security/.htpasswd; nginx폴더 안에 security 폴더를 새로 만들고 패스워드 파일을 생성합니다. 이렇게 하는 이유는 nginx폴더 안에 설정파일이 많이 있는데, .htpasswd 파일이 숨김속성의 파일이라서 보이지 않습니다. 그래서 나중에 패스워드 관리상에 헷갈리기 쉽기 때문에 폴더로 구분해 주는 것입니다. 또 패스워드 폴더 이름을 security로 하지 않고 다른 영문명으로 해도 됩니다. (예- paswd, npas 등...)

auth_basic "Restricted"; - 접속 시에 나오는 인사말 같습니다.


2-2. /etc/nginx/security 경로 상에 .htpasswd 파일을 생성합니다.

nano /etc/nginx/security/.htpasswd

폴더가 없으면 security폴더를 새로 만듭니다. .htpasswd 파일형식은 다음과 같으며, 영어와 숫자로만 입력합니다. 그리고 비밀번호 생성은 사이트에서 생성 후 입력합니다.

사용자:비밀번호
user:pass

저장하고 나옵니다.


3. nginx을 다시 시작합니다.

systemctl restart nginx


4. 다시 접속하면 이렇게 메세지 창이 뜹니다.

재 접속시 이렇게 나옵니다.

samba에서 다른 파티션 추가하기(POGOPLUG SERIES 4용)

1. 시작하기 전에...

 파티션 부분을 마운트 하는 방법은 Archlinux 한글페이지에서 참고하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

저는 750Gb나 되는 대용량 하드디스크를 쓰기 때문에 파티션의 필요성을 항상 느끼고 있었는데, 리눅스와 MS Windows로 컴퓨터를 사용하는 사람으로써 만든 원칙 중에 하나가 부트영역과 데이터 부분을 나누어야 컴퓨터가 안정된다고 생각합니다.

 위처럼 공통적인 관리부분도 존재하지만 리눅스와 MS Windows는 많은 차이가 있었습니다. 그 중 큰 차이점은 리눅스에서는 장치가 추가되어도 자동으로 표시해 주지 않습니다. 설정값을 넣어줘야 MS Windwos상에서 공유 네트워크로 표시될 수 있습니다. 물론 그래픽 표시가 없는 SSH상이라 감안해야 될 사항이지만 MS Windows 와는 많이 불편한게 사실입니다.

windows는 그래픽으로 표시되며 자동으로 표시해 줍니다.

하지만 리눅스는 추가됐는지 안 됐는지 알수가 없습니다.

2.samba에서 다른 파티션에 접속하기

samba에서 다른 파티션에 접속하기 위해서는 첫번째, 해당 디스크가 파티션이 나뉘어 있어야 하고 두번째, samba의 'nano /etc/samba/smb.conf'에서 해당 디스크를 표시해 줘야 하며 세번째, 'nano /etc/fstab'에서 해당 디스크를 표시해 줘야 합니다.

2-1. 파티션을 usb 외장하드 케이스에 장착해서 나누는 방법은 여기를,
       SSH상에서 파티션 나누는 법은 여기를 참고하세요.

2-2. 파티션을 마운트합니다.
fdsik -l              -fdsik -l를 쳐 주는 이유는 파티션 이름 및 경로를 알기 위함입니다.
mount /파티션 경로이름

2-3. fstab파일에 파티션을 등록합니다.
nano /etc/fstab
# <file system> <dir> <type> <options> <dump> <pass>
     /dev/sda2       /       ext3     defaults      0           0

위 사항의 자세한 설명입니다.
  • <file system>에는 드라이브의 경로를 입력하면 됩니다.
  • <dir>은 사용자가 해당 드라이브에 접속할 때 시작하는 곳을 지정하는 것으로써 기본적으로 /입니다. /는 루트 드라이브에 접속되며 폴더를 지정하면 그 폴더에서 시작합니다. 이것을 이용해 빈 숨김 드라이브를 만들 수 있는데, 루트 드라이브에 파일을 저장하고 다시 접속폴더를 지정하면 루트 드라이브에 저장된 파일은 일반적으로 접근할 수 없습니다. (야동ㅎㅎ)
  • <type>는 사용자가 접속하는 드라이브의 시스템 포맷을 입력합니다. ext3, ext2, ntfs 등을 써주면 됩니다.
  • <options>은 사용자가 드라이브에 접속할 때 사용할 수 있는 조건으로 기본적으로 defaults를 씁니다. 이 조건에 따라 읽기, 쓰기 등만 가능할 수 있습니다.
  • <dump>는 파일 시스템을 백업할 때 필요한 사항으로 기본적으로 0입니다. 0은 백업을 만들지 않겠다는 뜻이며, 1은  만들겠다는 뜻입니다.
  • <pass>는 파일 시스템을 체크할 때 필요한 사항으로 기본적으로 0입니다. 0은 체크하지 않으며, 1은 루트 파일 시스템을 체크하며, 2는 다른 파일 시스템을 체크하고자 할때 쓰입니다.
2-4. 재부팅합니다.
/sbin/reboot    - 재부팅해야 드라이브가 표시됩니다.

2-5. 파티션의 이름 및 경로를 알기 위해 df -h를 입력합니다.
 
2-6. samba의 smb.conf 파일에 파티션 표시하기
nano /etc/samba/smb.conf입력합니다.
[Pogoplug]
path = /
read only = no
public = yes
writable = yes
guest ok = no

이 밑에 다음을 붙여 넣습니다.

[원하는 영문 이름]
path = /                             - 파티션 경로를 입력합니다.
read only = no
public = yes
writable = yes
guest ok = no


저장 후 나갑니다.

2-7. samba를 다시 시작합니다.
systemctl restart smbd

'\\아이피주소'로 들어가면 이렇게 표시됩니다.

포고플러그 s4 초기화 하는 법(POGOPLUG SERIES 4용)

1. 시작하기 전에...

 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

 포고플러그 시리즈 4의 초기화를 그냥 넘어 가려고 했는데,  초기화 방법을 많이 찾으실 것 같아서 새로 포스팅 합니다. 다른 포고플러그 제품들은 초기화 하려면 복잡하고 고장날 각오를 해야합니다. 그러나 포고플러그 시리즈 4는 초기화 과정이 쉽습니다. 다른 포고 제품에 비해 비싸고 성능은 약간 낮게 나왔지만 초기화의 편리함 때문에 얼마든지 감수 할 수 있는 사항입니다.(이 글을 쓰는 동안에도 초기화를 했습니다.)


2. 초기화 하는 법(원복, 복구...)

2-1. usb메모리를 FAT32로 포맷하고 안에 폴더를 만드는데, 이름을 'revert' 로 합니다.



2-2. 기기의 전원을 내리고 usb를 꼽습니다.



2-3. 기기의 전원을 넣으면 usb를 인식하며 깜빡깜빡 거립니다.



2-4. 전면 불이 녹색으로 깜박거리다가 빨간색, 주황색으로 바뀌는데, 포고플러그 시리즈 4의 firmware가 복구되는 것입니다.



2-5. my.pogoplug.com에서 '나의 기기찾기'를 다시합니다.

2013년 3월 25일 월요일

Archlinux SSH 보안설정 하기(포트) (POGOPLUG SERIES 4용)

1. 시작하기 전에...

 SSH 설정은 Archlinux 한글페이지 에서 참고하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

 SSH 포트 설정은 공유기에서 외부 포트만 막아놓아도 안전을 지킬 수 있는데, 왠만하면 외부에서는 SSH 접속을 하지 않을 것을 권합니다.


2. SSH 포트를 바꾸는 이유

내부에서만 접속하고 외부에서 접속하지 않는다면 이 설정을 할 필요는 없습니다. 하지만 외부에서 SSH를 꼭 접속해야 한다면 공유기에 해당 ip를 포트포워딩 하게 됩니다. 그리고 이 상황에서 SSH 포트는 nmap 같은 포트 스캔너에 의해 스캔을 당하고 보안위협에 노출될 수 있습니다. 다음은 원문입니다.
Even though the port ssh is running on could be detected by using a port-scanner like nmap, changing it will reduce the number of log entries caused by automated authentication attempts

SSH를 외부에서 접속할 때 포트를 바꾸려면 다음 두 가지 설정을 변경하고 공유기에서 해당 포트를 포트포워딩 해야 합니다.(2-2. 공유기 DDNS  및 포트포워딩 방법 ) 그런데 위의 참고 페이지에는 openssh를 설치해야 하는데, 포고 s4의 Archlinux에서는 설치하지 않아도 설정할 수 있습니다. 기본적으로 설치되어 있습니다.


2-1. 우선 openssh를 설치합니다.
(포고s4에는 설치하지 않아도 설정이 됩니다. 이 단계는 건너뛰어도 됩니다.)
pacman -S openssh


2-2. SSH 클라이언트 설정에서 포트와 나머지 정보를 바꿉니다.
nano /etc/ssh/ssh_config

# $OpenBSD: ssh_config,v 1.25 2009/02/17 01:28:32 djm Exp $
...쭈~욱 나오고

Host *
...
# IdentityFile ~/.ssh/identity
# IdentityFile ~/.ssh/id_rsa
# IdentityFile ~/.ssh/id_dsa
   Port 888 fff- # 주석을 지우고 원하는 포트 숫자를 씁니다. 예) 777, 999
   Protocol 2 - # 주석을 지우고 '2, 1'을 2로 고칩니다. protocol 1은 불안정하다고 합니다.
# Cipher 3des


SSH데몬 설정에서 포트를 바꿉니다.
nano /etc/ssh/sshd_config

# $OpenBSD: sshd_config,v 1.87 2012/07/10 02:19:15 djm Exp $
...쭈~욱 나오고

# default value.

  Port 888         - #주석을 지우고 원하는 포트 숫자를 입력합니다.
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

# The default requires explicit activation of protocol 1
  Protocol 2     - #주석을 지우고 숫자를 2로 고칩니다.

hosts.allow , hosts.deny 설정은 포고s4용 archlinux에는 없는 파일이기 때문에 설정하지 않습니다. 잘못 만들어서 설정하면 ssh에 접속이 안되는 일이 발생합니다. (지금 이 글을 쓰는 현재 제가 실수한 사항입니다.ㅎㅎㅎ)


2-4. 설정 후 시스템을 다시 시작합니다.
systemctl restart sshd


2-5. ssh접속 프로그램에서 바꾼 포트 숫자를 기입합니다.
예제) 아이피 : 192.168.156.44 포트 : 888


보너스 (비밀번호를 분실하지 않았다는 전제하에)
SSH 비밀번호 변경
passwd

samba(smbd) 비밀번호 변경
smbpasswd -a root

mysql 비밀번호 변경
mysql -u root mysql -p
update user set password=password('root비밀번호') where user='root'; 입력

트랜스미션 비밀번호 변경
systemctl stop transmission
nano /var/lib/transmission/.config/transmission-daemon/settings.json
"rpc-password": "새로운 비밀번호 넣기",

2013년 3월 23일 토요일

IP 포트 리다이렉트 하기(POGOPLUG SERIES 4용)

 1. 시작하기 전에...

트랜스미션 포트 리다이렉트는 Fusion Swift
ip_conntrack 문제는 yoonperl.com 을 참고하였습니다.
 그리고 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

혹시 이런 주소 보셨나요?

www.도메인.co.kr:8080 , http:// 예쁜도메인.com:9237 등 의외로 이런 주소가 많습니다.
왜 그럴까요? 웹 서버를 돌리려면 인터넷 포트중에 TCP 80포트가 열려 있어야 합니다. 그런데 인터넷을 서비스 해주는 회사에서 보안상의 이유를 들어 TCP 80번 포트를 막아 놓습니다. 그래서 80번 포트가 안열리면 보통 포트번호를 도메인 주소 뒤에 붙입니다. 이렇게 되면 도메인 주소가 이상해 보이고 포트번호를 잊어먹거나 도메인 주소 자체를 잊어먹을 수 있습니다. 그래서 이런 불편을 해결하는 방법 중에 하나가 포트 리다이렉트입니다.

하지만 ip 포트 리다이렉트 시에 문제가 발생하는데, 문제가 바로 ip_conntrack 입니다. ip_conntrack이 발생하면  모듈이 올라가고 많은 Connection 이 있는 경우 ip_conntrack full 이 발생해서 나머지 패킷들을 drop시켜버리는 문제가 발생할 수 있습니다. 좀 더 쉽게 비유해서 얘기하자면 웹페이지 접속 시  속도가 느려질 수 있습니다. (패킷을 제대로 받지 못하니까 속도가 나오지 못한다는 얘기입니다. 자세히는 저도 모릅니다.)


2. 포트 리다이렉트하는 방법

#.트랜스미션 포트 리다이렉트

nginx 환경설정을 nano 에디터로 엽니다.
nano /etc/nginx/nginx.conf

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /srv/http;
            index  index.html index.htm index.php;
바로 밑에 다음 구문을 추가합니다.

location /transmission
             proxy_pass http://127.0.0.1:9091/transmission
}

이름인 transmission은 웹 주소 뒤에 붙힐 이름으로 사용자의 취향에 따라 이름 길이를 짧게 할 수 있습니다. transmission의 이름 길이 길다면 down이나 host등 많은 이름을 자유롭게 붙칠 수 있습니다. 다만 두개의 이름명이 같아야 하며, 트랜스미션에서 url 설정과 같아야 합니다.
 

예 1) 
location /down {
             proxy_pass http://127.0.0.1:9091/down
}

예 2)
location /host
             proxy_pass http://127.0.0.1:9091/host
}

이렇게 구문을 꾸미면 주소가 '192.168.100.3:8083/원래 길고도 긴 이름' 에서 '192.168.100.3/짧은 이름'로 바뀝니다.


2-2. TCP 80번 외부 포트가 막혀 있을 때 TCP 8080 포트로 리다이렉트하는 방법(nginx, mysql, php가 설치된 포고 s4에 한해서 적용됩니다.)

이거는 연구중입니다.

2013년 3월 21일 목요일

저의 포고플러그 s4 웹페이지입니다. 그리고 공지

 이 블로그의 글은 마음대로 퍼가셔도 됩니다. 하지만 우클릭이나 펌을 금지한 홈페이지, 블로그에는 스크랩을 자제해 주십시오. 왜냐면 자기는 맘대로 퍼갔으면서 남은 맘대로 퍼가지 못하게 한다는 것이 불공평하다고 생각하기 때문입니다. (뭐 퍼갈때 댓글을 다신다거나 원작자의 링크를 다신다면 저에게는 영광입니다. )

다음 도전할 제품은 라즈베리 파이여기서 소개한 제품에 archlinux를 올려서 tv에서 인터넷을 검색하거나 hd방송 수신이 되게 하는 기능을 가진 스마트 tv박스를 만들 계획입니다. 요즘 전기 절약이다 뭐다해서 저전력 전자기기에 관심이 많이 갑니다. (그런데 시간이 되면 물론 하겠지만 기약이 없네요. 취업도 안되고 그나마 공부를 다시 한다는 것이 행운임)

아래 동영상은 여기서 소개한 미니보드에 안드로이드를 설치해서 높은 화질의 동영상을 재생하는 것을 시연한 것입니다.



댓글을 인용하자면 cpu와 전체 성능이 너무 좋아서 고민이라고 합니다. ( 정말 탐이 날 정도네요. 갖고 싶어요.)

2013년 3월 20일 수요일

보통 사용자로서 리눅스가 대중화되지 못한다고 생각하는 이유

 리눅스는 누구나 이용할 수 있도록 만들어진 운영체제입니다. 비용을 들이지 않더라도 사용할 수 있는 열린 프로그램입니다. 하지만 이것뿐입니다. 정말 불편합니다. 전 windows 프로그래머도 아니고 그렇다고 유사한 직종에서 일하는 사람도 아닙니다. 단지 일상에서 알고 있으면 매우 편하고 돈이 절약되는 기술을 익히고 있었는데, 요즘은 리눅스였습니다.

 리눅스는 초보자가 사용하기에는 어렵고 지속해서 운영하기 어려운 운영체제입니다. GPL 라이센스만 아니라면 사용하는 사람이 없을 것으로 생각하고 있습니다. 한 마디로 표현하자면 리눅스는 컴퓨터를 쓰기만 하는 일반 사용자에게는 쓰레기 같은 운영체제가 아닐까 생각됩니다. 접근을 쉽게 할 수 없고 텍스트 타입이라 명령어 구문을 알아야 리눅스의 일반적인 사용이 가능합니다. 이러한 불편함은 리눅스의 쉬운 접근을 막고 대중에게 널리 쓰이지 못합니다.

 리눅스가 GPL라이선스라 해도 저는 다음과 같은 이유를 들어 리눅스의 대중화가 어렵다고 생각합니다.

 첫 번째, 일반 사용자에게 대중화되지 못해서 없어지거나 소수만 아는 지식으로 전락할 것입니다. 지식은 대중이 공감하고 전파되어 널리 사용되어야 발전하게 됩니다. 그런데 리눅스는 말만 열린 것이지 일반인에게는 전혀 접근할 수 없는 미지의 부분이 많고 일반인이 사용하기 위해서는 높은 수준의 지식이 있어야 합니다. 요즘은 많이 나아져서 설치 화면을 그래픽으로 나타내지만 그래도 뭔가 부족합니다.

 이렇게 봤을 때 MS Wndows가 사용자에게 얼마나 편리한 것인지 느끼게 되었습니다. 혹자는 "Windows도 처음에는 텍스트 기반이었다. 그리고 텍스트 기반을 쓰는 것이 더 빠르고 편하다." 라고 말할 수 있을 것입니다. 저도 1990년대 286을 쓰고 도스로 부팅하던 시절의 컴퓨터를 썼습니다. 하지만 제가 느끼는 MS Windows의 특성이라고 한다면 진짜 중요한 부분은 그래픽과 텍스트를 같이 써서 사용자의 이해를 높임으로써 고급정보에 쉽게 다가갈 수 있게 하였습니다. 예를 들면 msconfig이 대표적입니다.


 주로 웹 처럼 그림으로 설명하고 중요한 부분은 텍스트로 바꿀 수 있도록 하고 있습니다. 그리고 한 곳에 중요한 사항을 몰아둠으로써 사용자가 좀 더 쉽고 높게 접근할 수 있도록 배려했다는 것을 느꼈습니다. 이에 비해 리눅스는 아는 사람만이 접근할 수 있으며, 비슷한 설정이 너무 많습니다. 이것이 리눅스가 대중화되지 못한다고 생각되는 첫 번째 이유입니다.

 두 번째, 리눅스는 일반 사용자를 위한 정확하고 확실한 지원 창구가 없습니다. 영어로 말하면 피드백, 한국어로 말하자면 제품 지원 보증이라고 해석하는데, 왜 이렇게 해석하는지 아리송해하는 사람도 있을 것입니다. 물어보고 대답해 주는 행위라고 해야 하지 않느냐고 할 수 있는데, 어떤 제품에 대해서 물어보고 대답해 주고 하는 것은 단순한 대화의 의미를 떠나 그 제품에 맞는지 그리고 적용되는지에 대한 기술적 검토가 이뤄졌는다는 것입니다.

 제품 지원 보증을 할 수 있는 것은 확실한 지원 창구가 있는 제품을 말합니다. 그러나 리눅스는 전문가가 아닌 비전문가가 대답해 주기 때문에 틀린 경우가 많고 리눅스의 종류가 많아서 질문한 대답의 정확도가 매우 떨어집니다. 특히 Archlinux에 적용되는 문서는 거의 없어서 고생 좀 했습니다. 그리고 다른 사람들이 리눅스 포스팅한 부분을 살펴보면 자신은 실험해 보지도 않고 남에 것을 붙여 넣기한 것이 대부분이었습니다.

예를 들어 서버 시간 동기화 편만 봐도 리눅스 종류에 따라 먹히고 안 먹히는 명령어가 존재했습니다.


 세번째, 너무 많은 리눅스의 종류가 사용자에게는 행복일 수도 있겠지만, 초보자에게는 그저 높은 절벽일 뿐입니다. 제가 Windows 빠는 아닙니다. 그러나 Wndows는 사용자 중심으로 정말로 잘 만들었습니다. 그냥 따라가기만 하면 됩니다. 중요한 설정은 윈도우가 잡아내며 사용자가 원하지 않을 시에는 최적의 선택을 해 줍니다. 그에 비해 리눅스는 일일이 다 전부를 설치해야 합니다. 물론 금전적 차이를 들자면 리눅스의 승이겠지만 현실은 Windows가 잡고 있음을 알아야 합니다. 많은 종류의 리눅스가 선택의 기쁨이 아니라 다가 설 수 없는 벽이 되가고 있음을 알아야 합니다.

리눅스는 잘 꾸미면 정말 가치있고 효율성 100프로 1000프로인 os입니다. 그런데 그 효율성은 단지 아는 사람에게만 집중됩니다. 나머지에게는 이걸 연구할 시간도 없고 자기 것으로 만들 시간이나 기회, 그리고 능력이 없을 지도 모릅니다. 이것이 아무리 GPL이라고 해도 사용되지 않는다면 그저 방치된 페기물 쓰레기 일지도 모릅니다.

2013년 3월 14일 목요일

MYSQL에서 데이터베이스 삭제 및 생성(POGOPLUG SERIES 4용)

1. 시작하기 전에...

http://wiki.kwonnam.pe.kr/database/mysql/basic에서 참고하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

 앞에서 배웠듯이 mysql에서 여러개의 홈페이지를 설치하려면 http폴더 상에 그누보드 실행폴더를 이름만 틀리게 해서 넣고 mysql데이터베이스를 설치하면 됩니다. 그런데 홈페이지가 맘에 안들고 다시 만들고 싶다거나 잘못 만들었다면 무엇을 어떻게 해야 할까요? 우선 mysql데이터 베이스를 삭제해야 하고 그누보드 폴더를 지워야 합니다. (역순입니다.)


2. mysql 데이터베이스 생성 및 삭제 명령어 (상황에 맞는 명령어를 골라 쓰세요.)

우선 SSH에서 mysql에 접속합니다.

mysql -u root -p
Enter password: 비번 입력
그리고나서 상황에 맞는 명령어를 골라씁니다.

데이터베이스를 생성합니다.
mysql> CREATE DATABASE dbname;

현재 존재하는 데이터베이스 목록을 보여줍니다.
mysql> SHOW DATABASES;

특정 데이터베이스를 사용하겠다고 선언합니다.
mysql> USE dbname;

mysql 데이터베이스를 삭제합니다.
mysql> DROP DATABASE [IF EXISTS] dbname;

IF EXISTS 옵션은 비록 데이타베이스가 없더라도 오류를 발생시키지 말라는 의미입니다.
그런데 'ERROR~~~' 고 뜬다면 [IF EXISTS]를 지우고 입력합니다.
mysql> DROP DATABASE dbname;

mysql을 나가기 전에 확인하고 나서 끝났으면 나갑니다.
mysql> exit

MYSQL에서 비번찾기 (POGOPLUG SERIES 4용)

1. 시작하기 전에...

https://wiki.archlinux.org/index.php/MySQL에서 참고하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

 진짜 이느무 비번때문에 POGOPLUG SERIES 4에 초기화를 몇번 했는지 모릅니다. myslq '설정접속'을 하려면 비번이 필요한데, 잘못 설정해서 다시 설치하고 몇 번의 초기화를 했는지 모릅니다. 그래도 설정이 남아있어서 mysql접속이 되지 않았습니다.


2. 비밀번호 찾기

2-1. 우선 MYSQL 패스워드를 초기화합니다

mysqld_safe --skip-grant-tables &
그럼 잠시 무어라 나오는데 기다립니다.

2-2. 다시 mysql에 접속합니다.
mysql -u root mysql

2-3. 비번을 다시 설정합니다.
mysql -u root mysql -p
mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit

그누보드 파일 업로드 용량 늘기기(POGOPLUG SERIES 4용)

1. 시작하기 전에..

 nginx 설정은 여기를 php 설정은 Min.Gun여기를 참고하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

포고플러그 시리즈 4에 nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다. php 설정, nginx 설정을 통해 업로드 용량을 늘릴 수 있습니다. 홈페이지를 nas나 웹하드처럼 단순히 업로드 서버로 사용하기 위한 것이라면 단 5줄을 바꾸는 것만으로 용량을 늘릴 수 있습니다. 단 인터넷 회선이 빨라야 업로드가 빠릅니다.(전 1기가로 늘렸습니다.)


2. 바꾸기

우선 php nginx, 그리고 그누보드상에서 파일용량을 바꿔줘야 합니다.

nginx

nano /etc/nginx/nginx.conf 를 SSH상에서 입력합니다.
...
access_log off;
gzip on;

server {
listen 80;
server_name localhost;

client_body_buffer_size 16k;      - 추가 않해도 상관없음
client_body_temp_path /var/tmp/nginx/client_temp 1 2 - 추가 않해도 상관없음
client_body_timeout 60;             - 추가 않해도 상관없음
client_header_buffer_size 1k;     - 추가 않해도 상관없음
client_header_timeout 60;          - 추가 않해도 상관없음
client_max_body_size 1024M; -> 이 구문을 추가해 줍니다. 용량은 메가(M)단위입니다.

#charset koi8-r;
..
그리고 저장합니다.
ctrl+o에 엔터, 그리고 ctrl+x 하면 됩니다. 


php

nano /etc/php/php.ini 를 SSH상에서 입력합니다.

원본은 이렇게 설정되어 있습니다

;upload_tmp_dir =    - 업로드 파일크기가 클 경우 임시폴더를 거쳐서 저장하는데, 기본적
;upload_tmp_dir =     -으로 지정되어 있지 않습니다. 임시폴더가 없으면 나타나는 증상이
;upload_tmp_dir =     -업로드 중간에 에러가 나면서 업로드 되지 않습니다. 임시폴더가 지정
;upload_tmp_dir =     -되어 있는지 확인하는 방법은 pogo ip/phpinfo.php를 쳐서
;upload_tmp_dir =     -upload_tmp_dir 항목에 폴더 및 경로가 지정되어 있나를 확인합니다.
max_execution_time =30 스크립트 실행시간 (초)
max_input_time = 60  업로드 시간 (초)
post_max_size = 8M 포스트방식 최대용량
upload_max_filesize = 2M 업로드 최대용량
memory_limit = 128M  업로드 용량과 함께 늘려 줘야 합니다.


nano에서 ctrl+w이 글자 찾기인데, 위에 내용을 찾아서 바꿉니다.
크기를 memory_limit > post_max_size > upload_man_filesize 순으로 설정합니다.

 upload_tmp_dir = /원하는 경로  - 앞에 ;주석을 지웁니다. 그리고 그누보드가 깔린 디스크
 upload_tmp_dir = /원하는 경로  - 와 같은 디스크에 만듭니다. 예를 들어 c드라이브에 그누 upload_tmp_dir = /원하는 경로  -  보드가 설치되었다면 upload_tmp_dir 경로도 c드라이브
upload_tmp_dir = /원하는 경로  -  여야 합니다. (이유 아시죠? 느려져요. ㅎㅎㅎ)
max_execution_time = 60
max_input_time = 360
post_max_size = 1022M
upload_max_filesize = 1023M
memory_limit = 1024M


그누보드

관리자 설정->게시판 수정에서 파일 업로드 용량 수정을 할 수 있습니다.







그 다음에 php와 nginx를 재시작합니다.

systemctl restart nginx
systemctl restart php-fpm

transmission 설치 및 보안설정 하기 (POGOPLUG SERIES 4용)

1. 시작하기 전에...

설치는 http://pogoplug.tistory.com/8 에서,
보안설정은 http://pogoplug.tistory.com/27을 참고했습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

 일명 리눅스의 토렌트 프로그램인 트랜스미션입니다. POGOPLUG SERIES 4에는 외부 그래픽 장치가 없어서 일반 토렌트 프로그램을 쓰기에는 무리입니다. 그런데 transmission은 웹 브라우져에서 작동되고 상태 확인이 가능해서 좋은 프로그램입니다.


2. transmission 설치하기

pacman -Sy transmission-cli


3. transmission 설정하기

nano /etc/conf.d/transmissiond

앞에 #주석지우고 추가하기
 TRANS_USER="root"
 TRANS_ARGS="-g $TRANSMISSION_HOME/.config/transmission-daemon"

그리고 시스템 시작하기

systemctl start transmission


4. 보안 설정전에 transmission중지하기 (중지하지 않으면 설정이 변경되지 않습니다.)

systemctl stop transmission


5. 보안 설정하기

nano /var/lib/transmission/.config/transmission-daemon/settings.json
위 파일은 트랜스미션을 시작해야만 생깁니다. 그러니 반드시 시작하신 후 중지하세요.


"blocklist-enabled": true, - 토렌트 ipfilter 업데이트 리스트를 재 시작시 자동으로 업데이트합니다. false면 수동으로 업데이트 해야 합니다.
"blocklist-url": "http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz", 토렌트 ipfilter 업데이트
"rpc-url": "/transmission/", 도메인 주소 뒤에 붙칠 이름인데, 짧게 고쳐도 됩니다. 예를 들어 host, down등으로 고칠 수 있습니다.
"rpc-authentication-required": true,
"rpc-password": "password", - 사용자 암호
"rpc-username": "username", - 사용자 아이디
"rpc-whitelist-enabled": false,
...


6. 트랜스미션을 다시 시작합니다.

systemctl start transmission

'http://포고 아이피:9091/transmission'으로 재접속 하면 다음과 같이 나옵니다. 그런데 9091 포트를 쓰지 않고 'http://포고 아이피/transmission' 처럼 접속하려면 여기을 참고하세요. (대신 단점도 있습니다.)


NGINX서버를 통한 다운로드 링크 형성하기(POGOPLUG SERIES 4용)

1. 시작하기 전에...

 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

 홈페이지에서 파일을 간단히 다운로드 하게 하고 싶다면 간단히 할 수 있습니다. nginx에서 설정구문을 몇 줄 바꿔 주면 됩니다. 특히 autoindex   on; 명령어를 입력하면 웹 페이지에 파일 목록을 작성하지 않아도 파일목록을 자동적으로 보여줍니다. 그러나 일반 웹페이지에서 업로드하는 파일첨부와는 성격이 다른 것입니다.




2. 링크방법

SSH에서 다음과 같이 입력합니다.
nano /etc/nginx/nginx.conf

쭈~욱 나오는데,

 server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /srv/http;
            index  index.html index.htm index.php;

이 아래에 이 구문을 추가합니다.

location /down {                       - 웹주소 뒤에 붙힐 이름
            alias   /srv/down;          - 다운로드 폴더 경로를  반드시 지정할 것
            autoindex   on;            - down 폴더안에 자동으로 파일을 보여줌
            index  index.html index.htm index.php;
            access_log      /var/log/nginx/down.access.log;  - 접근로그 작성
            error_log       /var/log/nginx/down.error_log;fdgfg - 에러로그 작성
            charset utf-8; kdfjngktnglfghlkfgnklgfkfgbnkkf;;;;;;;- 접속시 한글깨짐방지
        }

그리고 위에 경로를 지정했으면 windows상에서 우클릭으로 '폴더만들기'를 선택해서 다운로드 폴더를 만드세요. 다운로드 폴더 경로와 폴더명만 지정하고 폴더를 만들지 않거나 제대로 하지 않았다면 이렇게 나옵니다.

폴더를 꼭 만드세요.

경로가 지정된 nginx 폴더 안에 또 폴더를 만들면 분류하기도 편합니다. (이것은 windows 상에서 우클릭해서 폴더만들기를 하면 됩니다.)


포고 s4 서버와 공유기의 포트포워딩 및 DDNS 연결하기(포고 공통)

1. 시작하기 전에,,,

공유기의 DDNS와 포고 s4를 연결하려면 우선 내부에서 접속되어야 합니다. 예를 들어 '192.168.0.159/doty'가 포고 s4의 홈페이지 사설주소면 내부에서 브라우저로 이 주소에 접속되어야 합니다. 하지만 'nginx 설정'에서 도메인 입력란이 있는데, 도메인을 입력란에 입력하지 않아도 서버가 공유기의 DDNS 연결에는 영향을 끼치지 않습니다.


2. DDNS(=도메인)에 포고 s4 연결하기

포고 s4의 사설주소에 DDNS(=도메인)를 연결하려면  DMZ설정이나 포트포워딩을 해야 합니다.(DMZ나 포트포워딩 둘 중 하나만 선택해서 하세요.)

2-1. DMZ (방화벽 해제)를 설정합니다. 해당 아이피의 모든 포트를 엽니다. 현재 공유기에 연결된 포고플러그의 내부 서버주소를 'DMZ설정 주소'난에 등록합니다. 하지만 리눅스 내부에 방화벽 설정이 없는 이상 보안위협의 문제가 있기 때문에 그렇게 추천하지 않습니다.



2-2. 포트포워딩을 합니다. DMZ는 모든 포트를 열기 때문에 보안에 문제가 많습니다. 그래서 일부 포트만 열면 외부 위협에서 보안을 지킬 수 있습니다. 바로 포트포워딩인데, 포트포워딩을 통해 등록합니다. (단 외부포트 80의 경우 ISP에서 막은 경우가 많습니다. 웹서버의 입장에서는 참 난감하죠. 웹 포워딩이나 도메인에 포트번호가 붙는다거나...)



 좀 더 자세히 포트포워딩을 말하면 공유기 내부 사설주소에서 접속 시에는 리눅스에서 iptables를 지정하지 않는 이상 포트포워딩의 영향을 받지 않습니다. 하지만 외부에서 접속 할때나 사설서버에 공인 도메인이 입혀진 경우 내부에서 접속 시 포트포워딩의 영향을 받습니다.
내부에서 사설주소로 접속 시
외부에서 접속시

3. Archlinux에서 현재 사용중인 리눅스 프로그램의 인터넷 포트를 확인합니다.
netstat -anp | grep LISTEN
이를 통해 사용할 프로그램과 사용하지 않을 프로그램을 확인합니다. 그리고 사용할 프로그램의 인터넷 포트를 공인 아이피에 포트포워딩 하면 포트포워딩 된 포트만 제외하고는 모든 포트가 닫힙니다. (위 그림 참조)

4. 각 공유기 제조사마다 DDNS를 서비스해 주는데, 공유기 회사용 DDNS를 등록해서 사용하거나 자신의 사설 도메인이 있다면 dyndns 항목에서자신의 도메인을 입력하면 됩니다.


포고 서버 시간 동기화 하기(POGOPLUG SERIES 4용)

1. 시작하기 전에...

 http://pogoplug.tistory.com/4를 일부 참조하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

이 시간 동기화 때문에 엄청 고생했습니다. 왜냐면 '포고플러그 시리즈 4'용 Archlinux에는 시간 동기화 프로그램인 openntpd가 설치되어서 나오기 때문입니다. 그래서 참고사이트에서 처럼 openntpd를 설치하지 않아도 됩니다.


이걸 모르고 설치만 하려고 했으니 에러가 나오지!

에러코드
warning: openntpd-3.9p1-21 is up to date -- reinstalling            -3.9p1-21이 신버전인데
resolving dependencies...                                                         다시 인스톨?
looking for inter-conflicts...
error: unresolvable package conflicts detected                        - 패키지 충돌 가능성
error: failed to prepare transaction (conflicting dependencies)   -3.9p1-21 패키지를 설치
                                                                                               하는데 실패

2. 시간 동기화(맞추기) 전에 현재 시간 확인하기

그리고 rdate -s 나 ntp 명령어 안먹습니다. 참고하세요.
date                                                   -라고 치면
Wed Mar 13 16:30:40 UTC 2013              -현재 시간이 영어로 나옵니다.


3. openntp를 설치합니다. (이 단계는 넘어가세요)

pacman -Sy openntpd ntp                  - openntp를 설치합니다.


4. 기존 시간 설정 지우기

rm /etc/localtime

이 명령어를 해석하자면 기존의 시간 설정을 지운다는 뜻입니다.
더 확대해서 말하면 기존의 etc폴더에 있는 '시간 동기화 설정파일'인 localtime 파일을 지운다는 뜻입니다. 포고 s4 서버는 시간을 동기화 할때  /usr/share/zoneinfo 경로의 폴더에서 시간파일을 고릅니다. 그러고 나서 시간을 동기화 하고 etc폴더에 localtime이란 파일이름으로 '시간 동기화 설정'을 저장합니다.


5. 새로운시간 설정하기
ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

해석하면 시간을 서울로 맞추겠다는 뜻입니다.
더 확대해서 말하면 /usr/share/zoneinfo 경로의 폴더에서 아시아의 서울 시간으로 localtime을 지정해서 저장하겠다는 뜻입니다. 이렇게 치면 /usr/share/zoneinfo 경로의 폴더에서 'localtime설정파일'을 볼 수 있습니다.

date
Thu Mar 14 01:49:00 KST 2013                    -현재 시간이 나옵니다.

그누보드 설치하기 (POGOPLUG SERIES 4용)

1. 시작하기 전에...

 http://www.nextlab.co.kr:8080/nw/를 100% 참고하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

 자 여기까지 했다면 다 한 것입니다. 그누보드를 사용해 보면 정말 가볍고 빨라서 '포고플러그 시리즈 4'에 딱 맞는 CMS툴 이라고 생각하실 겁니다. 또 하나의 CMS툴인 워드프레스도 있는데, 그누보다 조금 무겁습니다.


2. 설치하기

(1) 먼저 아래 주소에서 다운로드 받아서 압축을 풉니다.
http://www.nextlab.co.kr:8080/download/gnu4_nw102.zip

(2) 압축을 풀고 나오는 pogo 폴더를 윈도우 탐색기에서 Pogoplug의 /srv/http 에 복사합니다. (/srv/http/pogo 경로가 되도록)

(3) 이제 다시 ssh로 로그인합니다. (이미 로그인중이시죠? ㅎ)
cd /srv/http
chmod 777 -R ./pogo
(방금 복사한 pogo 폴더의 모든 파일을 실행가능 상태로 만드는 것으로 권한을 준다고 말합니다.)


3. Database 생성 & 설치 마무리
mysql -u root -p
Enter password: 비번 입력
mysql> CREATE DATABASE pogo DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> exit
(그누보드에서 사용할 pogo 라는 db를 생성합니다.)


그리고 웹브라우저 주소란에 포고사설_IP/pogo/install 을 입력합니다.
아래와 같은 페이지가 나와야 합니다.


[예, 동의합니다] 버튼을 누르고 진행합니다.

그 다음 페이지 입력란에는 다음과 같이 입력합니다.
Host: localhost (디폴트값)
User: root
Password: root비밀번호 (mysql에서의 비번)
DB: pogo
ID: admin (그누보드 관리자 ID입니다.)
Password: admin비번(root와 동일한 비밀번호로 하는게 편할겁니다.)
Name: 자신의별명이 좋습니다.
E-mail: 관리자 이메일주소
[다음]버튼을 누릅니다. (1번 눌러서 계속 반응이 없다면 1번 더 누르면 됩니다.)
아래와 같은 페이지가 나올때까지 기다립니다.


[메인화면] 버튼을 클릭합니다.
썰렁한 하얀색 화면이 나오나요? 성공입니다.
여태까지 힘들게한 작업의 결과가 이거라니까 조금 허탈하시죠? ㅎㅎ
사실 이제부터가 진짜 시작입니다. 조금만 더 힘내시자구요~!


4. 그누보드 사이트 설정
우측 상단 2개 입력란에 각각 admin과 비번을 입력하고 로그인합니다.
우측 최상단에 [admin]이라는 버튼이 생겼을겁니다. 클릭해서 아래 관리자화면으로 들어갑니다.

여기서 사이트에 대한 다양한 설정을 할 수 있습니다.
직접 하나씩 하셔도 되겠지만, 처음에는 설정이 너무 많아서 쉽지 않으니까 일단 저와 같이 하나씩 따라서 사이트를 간단히 만들어보도록 해요.

(1) 환경설정
환경설정 버튼을 누르고 다음 값을 변경합니다.
-홈페이지 제목: My Favotie Things
-포인트 사용 : 체크해제
-관리자 패스워드 : admin 비번 (모든 설정 맨 밑에는 관리자 패스워드를 요구합니다.)

(2) 사이트관리.사이트설정
사이트관리>사이트설정을 클릭해서 다음 값을 변경합니다.
-홈페이지 제목 : My Favotie Things
-홈페이지 설명 : 내가 좋아하는 모든 것들
-하단 추가문구:  이 사이트는 Pogoplug Series 4에 ARCHLINUX + NGINX + PHP + MYSQL + 그누보드를 설치해서 운영 중입니다.
(제 가이드를 따라서 웹서버를 구축했다면 위의 하단문구로 통일시켜주시기 바랍니다. 우리들만의 아름다운 약속이에요잉~ ^^)
-대메뉴 : 네 체크
- 아웃로그인 : 아니오 체크 (이것을 아니오로 체크하면 로그인 입력란이 사라집니다. 따라서 admin으로 로그인을 하기 위해서는 사이트 주소 포고사설_IP/pogo/adm 으로 접속하시면 로그인 페이지가 나옵니다.)

(3) 사이트관리.페이지관리
사이트관리>페이지관리를 클릭합니다.
테이블 헤더의 우측 [+] 버튼을 클릭합니다.
페이지 생성 입력란에 다음과 같이 입력합니다.
-페이지ID : intro
-페이지 제목 : Intro
-본문 내용 : (평소에 가장 좋아하는 것의 사진을 인터넷에서 찾아 링크를 복사해옵니다. 저는 욘아님 사진을...

본문 내용 입력란 위쪽의 에디터툴바에서 이미지링크 아이콘(카메라 아이콘 오른쪽)을 클릭해서 사진URL에 입력하고 [미리보기]로 확인한다음 [확인]버튼을 클릭합니다.
추가할 내용이 있다면 입력하고 맨 하단 [확인] 버튼을 클릭합니다.

(3) 게시판관리.게시판그룹관리
테이블 헤더 우측의 [+] 버튼을 눌러서 다음과 같이 입력합니다.
그룹 ID : pogobg1
그룹 제목 : 포고 게시판 그룹1

(4) 게시판관리.게시판관리
테이블 헤더 우측의 [+] 버튼을 눌러서 다음과 같이 입력합니다.
다음과 같은 2가지 게시판을 생성합니다.
(주의사항: 게시판 설정 각 입력란에 보면 제일 왼쪽에 체크박스가 하나씩 있는데 이걸 체크하면 모든 게시판에 일괄 적용되게 된다. 주의해서 사용해야 합니다.)

[첫번째 게시판]
-TABLE : favorite
-게시판 제목 : Favorite
-글쓰기 권한 : 10 (나만 쓸 수 있는 게시판이므로)
-글읽기 포인트 : 0
-다우로드 포인트 : 0
-DHTML 에디터 사용 : 체크
-스킨 디렉토리 : nw_basic
([확인] 버튼을 누른다음 다시 게시판관리>게시판관리를 클릭해야합니다.)

[두번째 게시판]
-TABLE : guestbook
-게시판 제목 : Guestbook
-글읽기 포인트 : 0
-다우로드 포인트 : 0
-DHTML 에디터 사용 : 체크해제
-스킨 디렉토리 : nw_basic

(5) 사이트관리.메뉴관리
오른쪽 부분의 다음 내용을 순서대로 추가합니다.
page - Intro (intro)
board - Favorite (favorite)
board - Guestbook (guestbook)
(순서가 잘못되었다면 Drag&Drop으로 순서를 변경할 수 있습니다.)

(6) 사이트관리.첫화면설정
우측 선택란에서 1 column을 [추가]합니다.
첫번째 SELECT 박스에서 [page]로 선택하고 두번째는 intro-Intro를 선택합니다.
주의사항 - 파이어폭스나의 경우  SELECT 박스가 움직이지 않습니다. 익스에서 수정해야 합니다.

설정이 모두 끝났습니다. 짝짝~
좌측 상단의 관리자화면 바로 밑의 [HOME] 버튼을 클릭해보면 드디어 그렇게 기다리던 우리의 사이트가 나타날 것입니다.

아래 제가 이미 만들어놓은 페이지처럼 나오나요?
http://dione6.gonetis.com/dion/

이대로 나온다면 Pogoplug Webserver 구축을 성공한 것이다. 정말 수고 많으셨어요 ^^
이제 다시 관리자화면으로 돌아가서 로그아웃을 한 다음에 Guest 상태에서 어떻게 보이는지도 확인해보세요. Favorite은 쓸수없고 Guestbook에만 쓸수가 있게 되어 있는지 등등요.


5. 마무리

그누보드를 이용해서 사이트 구축하는게 처음엔 그리 만만하지는 않을 것이지만 몇번 하다보면 금방 이해하고 매우 쉽게 원하는 형태로 구축을 할 수 있을것입니다.
그리고 어느정도 익숙해지셨다면 아래 그누보드 사이트를 방문해서 다른 빌더도 설치해보세요. 다양한 디자인의 많은 빌더들이 존재합니다.
http://sir.co.kr/bbs/board.php?bo_table=g4_builder

단, 새로운 그누보드 빌더를 설치할 때 다음 3가지를 주의해주세요.

(1) 빌더 패키지를 선택할 때 반드시 UTF-8 버전을 선택하세요. (EUCKR 버전이 따로 존재하는 패키지가 있습니다.)

(2) 설치 폴더를 다르게 해주세요.
이번에 /srv/http/pogo 에 설치한것을 기억해서 다음에는 /srv/http/boxi 이런 식으로요.

(3) database 명을 새로 생성해야 합니다.
앞에서 pogo라는 database 명을 이용했는데요. 다른 빌더 설치시 database 명에 pogo를 입력하면 이미 작업한 내용에 덮어쓰게 되므로 반드시 새로운 database를 생성해서 그것을 지정해야합니다.

새로운 database를 생성하는 방법은 아래 명령을 이용하면 됩니다.
ssh 로그인 상태에서
mysql -u root -p
Enter password: (root 비번 입력)
mysql> CREATE DATABASE boxi DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> exit