2013년 3월 14일 목요일

MYSQL설치하기 (POGOPLUG SERIES 4용)

1. 시작하기 전에...

http://www.nextlab.co.kr:8080/nw/를 100% 참고하였습니다.

참고 사이트에서는 프로세스 실행 시 rc.d가 먹히는데, series 4에서는 먹히지 않아서systemctl로 대체합니다.


2. MYSQL설치하기

pacman -Sy mysql


3. MYSQL 설정

nano /etc/mysql/my.cnf
(윈도우 탐색기에서 열어도 됩니다)

(1) 기본 스토리지 엔진을 MyISAM으로 합니다.
[mysqld]항의 아래 default-storage-engine 값을 추가합니다.
default-storage-engine=MyISAM

(2) 네트워크 기능 활성화 설정
아래 skip-networking 앞에 주석(#)을 추가합니다.
#skip-networking
이제 SQLyog 같은 MYSQL 클라이언트툴로 접속이 가능합니다.


4. root 권한 설정

아래와 같이 mysql을 실행하면서 보안관련 설치를 하고 재실행합니다.
systemctl start mysqld && mysql_secure_installation
systemctl restart mysqld
(만약 이 때 fail이 떨어지면 /var/lib/mysql/alarm.err 로그 파일을 읽어서 원인을 확인하면 됩니다.)
mysql에 접속해서 root의 권한을 설정합니다. root비밀번호에는 SSH 비밀번호와 동일하게 입력합니다. 또 아래 명령어 구문에서 괄호가 나오는데 괄호의 따옴표 안에 비밀번호를 입력합니다. 저는 괄호밖인 password='여기'에 적어서 한동안 고생했습니다.

mysql -u root mysql -p
mysql>update user set password=password('root비밀번호') where user='root';
mysql>insert into user(host,user,password) values('%', 'root', password('root비밀번호'));
mysql>grant all privileges on *.* to root@"%" identified by '새비밀번호' with grant option;
mysql>flush privileges; 
mysql>exit

mysql 재실행합니다. (아래 mysql이 아니라 mysqld 입니다.)
systemctl restart mysqld

NGINX와 PHP설치하기 (POGOPLUG SERIES 4용)

1. 시작하기 전에...

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

NGINX는 가벼워서 저성능의 서버에서도 실행되며, 각종 보완되지 않은 취약점에 해킹당할 수 있는 서버의 앞에 둠으로써  보안이슈를 보완할 수 있는 서버입니다.(원본링크) 그리고 참고 사이트에서는 프로세스 실행 시 rc.d가 먹히는데, series 4에서는 먹히지 않아서 systemctl로 대체합니다.


2. NGINX설치

pacman -Sy nginx
systemctl start nginx

nginx가 실행되는지 테스트하는 방법은 웹브라우저를 열어서 http://pogoplug_IP를 입력하여 엽니다. 그럼 'welcome to nginx'라는 문구가 나옵니다.

기본 홈 위치는 /usr/share/nginx/html 입니다.
3. PHP 설치 및 연동

static한 html, image나 간단한 파일을 올릴 목적이면 이 정도로 끝낼 수 있지만, 우리는 그누보드까지 설치가 가능한 제대로 된 웹서버이기 때문에 php 설치 및 연동 설정 작업이 필요합니다.

pacman -Sy php-fpm
pacman -Sy php-gd
systemctl start php-fpm



4. PHP 설정

nano /etc/php/php.ini

(samba를 무사히 설치했다면 nano 대신 윈도우 탐색기에서 열어도 무방합니다. 단 ultra edit같이 UNIX 파일을 지원하는 에디터를 이용해야 합니다.)

아래와 같이 수정하거나 주석(;)을 지워주어야 합니다. (새로 추가하는 것이 아니라 찾아보면 해당 항목이 존재합니다.)

검색으로 보면 ;주석으로 묶인 첫번째 'short_open_tag'부분을 수정하지 말고 밑에 나오는 두번째 short_open_tag=Off를 수정합니다.

 ...쭈~욱 내려가다 보면 나옴.
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
short_open_tag=Off를 다음과 같이 수정합니다.

short_open_tag=On      (php에서 <? 로 짧은 시작태그 쓸 수 있도록 설정)

...또 쭈~욱 내려가다 보면 ;주석으로 묶인 아래와 같은 부분이 나오는데, ;주석을 지웁니다.
 extension=mysql.so    (mysql 연동)
 extension=gd.so         (gd module or php 연동)


5. nginx 설정 (가장 중요한 부분입니다.)

nano /etc/nginx/nginx.conf
아래 내용은 다음을 기준으로 설정합니다. (전체를 추가하는 것이 아니라 부분적으로 추가 또는 수정하거나 ;주석을 지워주면 됩니다.)
...

http {
    ...

    access_log   off;
    gzip   on;

    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;

        }

    ...앞에 ;주석을 지웁니다.
 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
            try_files $uri =404;
            root                /srv/http;
            fastcgi_pass    unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index   index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include            fastcgi_params;

        }
       
        location = /favicon.ico {
            return 204;
            access_log     off;
            log_not_found  off;

        }

ctrl+o, 엔터로 저장하고 ctrl+x로 나옵니다.

cd /srv/http
(디렉터리가 존재하지 않는다는 에러가 발생하면 # mkdir /srv/http 로 디렉터리를 생성하면 됩니다.)

systemctl restart php-fpm
systemctl restart nginx



6. php 연동 테스트

wget http://pogo.nextlab.co.kr:8080/phpinfo.php.bak
mv phpinfo.php.bak phpinfo.php

라고 각각 입력하고 엔터를 칩니다.
그리고 브라우저에서 '자신의 포고_IP/phpinfo.php' 를 열었을 때 php 설치 정보 페이지가 제대로 나온다면 php 연동 작업까지 성공한 것입니다.

SAMBA 설치하기 (POGOPLUG SERIES 4용)

1. 시작하기 전에...

 이 글은 www.nextlab.co.kr를 100% 참고하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux가 설치되었을 때를 기준으로 설명합니다.

samba는 MS WINDOWS에서 리눅스의 폴더와 파일에 접근할 수 있도록 하는 프로그램입니다. 그리고 참고 사이트에서는 프로세스 실행 시 rc.d가 먹히는데, series 4에서는 먹히지 않아 systemctl로 대체합니다.


2. samba 설치하기

pacman -Sy samba avahi


3. samba 설정

nano /etc/samba/smb.conf
'nano' 라고 하는 리눅스용 편집기를 이용해서 smb.conf를 새로 생성합니다. MS Windows 계열의 메모장 같은 기능을 합니다. 사용법은 저장시 ctrl+o, 엔터 그리고 나가기는 ctrl+x입니다. 그리고 항목 이동시 마우스가 되지 않고 키보드 커서로 이동해야 합니다.

nano에 다음의 내용을 copy & paste 합니다. (putty에서는 오른쪽 마우스 클릭이 paste 입니다.)

[global]
workgroup = WORKGROUP
server string = ALARM
netbios name = ALARM
security = user
null passwords = yes
map to guest = bad user
log file = /var/log/samba/%m.log
max log size = 50
dns proxy = no
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=131072 SO_SNDBUF=131072 SO_KEEPALIVE
disable netbios = yes
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
[Pogoplug]
path = /
read only = no
public = yes
writable = yes
guest ok = no

smbpasswd -a root
smaba 패스워드를 새로 지정합니다. (왠만하면 비번은 SSH비번과 통일하는 것이 좋아요)


4. windows 7에서 에러해결법

nano /etc/security/limits.conf

설정 맨 밑에 아래 내용을 추가합니다.
*               -       nofile          16384

5. samba 접속하기

systemctl start smbd
samba를 실행해야 window에서 접속할 수 있습니다. 또 samba 프로세스 이름이 'samba'에서 'smbd'로 바뀌었습니다. 폴더 주소창에 \\Pogoplug의 IP 또는 도메인을 입력하고 엔터를 치면 접속됩니다.

메모리 스왑영역 설정 및 Pacman 서버 리스트 변경(POGOPLUG SERIES 4용)

1. 시작하기 전에...

메모리 스왑은 http://blog.acu.pe.kr/42
SD메모리 스왑설정은 http://afrivirt.wordpress.com/2010/06/04/4/
pacman 서버변경은 http://comfixlog.tistory.com/14를 참고하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux가 설치되었을 때를 기준으로 설명합니다.


2. 메모리 스왑의 필요성

POGOPLUG SERIES 4는 낸드와 램 용량이 각각 128MB/128MB으로 작아서 프로그램을 많이 실행하게 되면 버벅거리게 됩니다. 그래서 저장장치에 스왑영역을 설정하여 부족한 낸드와 램 용량을 보완합니다. 한 마디로 스왑은 MS windows 에서 설정되는 가상메모리라고 생각하시면 됩니다. 그리고 스왑영역은 실시간으로 읽기 때문에 빠른 저장장치에 스왑을 만들어야 하는데, 앞에서 빠른 저장장치를 쓰라는 이유가 이런 이유이기도 합니다.


3. 스왑영역 설정하기 (512MB 정도)

dd if=/dev/zero of=/swapfile bs=1M count=512 # 기본 드라이브에 스왑파일을 생성
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfiledufhugudfuighdfguidhrdighidf # 스왑메모리를 실행합니다.

dd if=/dev/zero of=/swapfile bs=1M count=512 - 뜻은 기본 경로의 디스크에 512메가를 스왑으로 지정하겠다는 것입니다.
chmod 600 /swapfile - 권한을 주겠다는 뜻
mkswap /swapfileds5- swapfile을 만들어라


3-1. 스왑영역을 삭제하고 싶다면?

스왑영역을 삭제하려는 이유는 빠른 파티션이나 독립된 디스크에 설치하려고 하는 이유, 또는 스왑영역을 확장하거나 축소하기 위해서 삭제하려고 하는 경우도 많습니다. 이를 위해서는 먼저 스왑영역을 삭제해야 합니다.
(이 명령어는 기본 경로의 메모리나 디스크에 설정한 스왑영역을 삭제할 때만 됩니다. 그 외에 추가된 sd메모리나 하드디스크 같은 곳에 생긴 스왑영역은 삭제할 수 없습니다.)

swapoff /swapfile - 스왑영역 사용을 중지 (스왑파일명을 입력하면 됩니다.)
rm /swapfilesdf55 - 스왑파일을 지움


3-2. SD메모리에 스왑영역 만들기 및 삭제

 포고플러그 시리즈 4에서 스왑 설정은 독립된 디스크에 설치하라고 많이 권합니다. 왜냐하면, 스왑영역은 실시간으로 읽기 때문에 메인 저장소(저같은 경우 HDD)에서 분리해 줄 경우 전력 낭비를 막을 수 있고 메인 저장소에 꼭 필요한 엑세스만을 해 주기 때문에 내부, 외부에서 빠르게 접속할 수 있습니다. 또한, HDD는 SD메모리 보다 전력소모가 큰 이유 때문에 분리해 주기도 합니다.

우선 스왑 파티션을 만듭니다.
3-2-1. 우선 메모리 이름을 확인합니다.
          fdisk -l                         # 확인된 장치이름이 mmcblk0p1임
3-2-2. sd메모리에 스왑 영역 전용의 파티션을 만듭니다.
          fdisk /dev/확인된 장치이름
3-2-3. p, d, n, p, 1, 엔터, 엔터, t, l, 82, w 을 차례대로 입력합니다.
3-2-4. 'fdisk -l /dev/확인된 장치이름'을 입력합니다.


그 다음 스왑영역을 만듭니다.
3-2-5. 'mkswap /dev/확인된 장치이름'을 입력합니다.
3-2-6. 'mkswap -f /dev/확인된 장치이름'을 입력합니다.


스왑영역을 사용하도록 설정합니다.
3-2-7. 'swapon -p 1 /dev/확인된 장치이름'을 입력합니다.
3-2-8. 'swapon -s /dev/확인된 장치이름'을 입력합니다.
마지막으로 free명령을 써서 스왑영역이 사용되는지 확인합니다.


스왑영역을 지웁니다.
3-2-09. swapon -s를 입력합니다.
3-2-10. 'swapoff /dev/확인된 장치이름'을 입력합니다.
3-2-11. swapon -s를 입력합니다.


4. pacman 서버 변경 및 추가의 필요성

 pacman이란 Archlinux를 업데이트 하거나 실행 프로그램을 자동으로 설치해 주는 프로그램으로 서버를 통해 설치 프로그램 관련 데이터를 받습니다. 이 데이터를 받는 서버가 몇개 있는데, 현재는 위치기반으로 중국서버를 자동으로 연결하고 있습니다. 하지만 중국서버는 불안정해서 자주 다운되고 속도가 느린 경우가 많습니다. 이런 이유로 pacman의 기본 서버 설정을 자동 위치기반에서 미국이나 다른 빠른 서버로 고정해 주는 것입니다. (바꾸고 나서 속도의 신세경을 경험했음. 중궈 서버 나~빠요.)

nano /etc/pacman.d/mirrorlist

## Geo-IP based mirror selection and load balancing

# Server = http://mirror.archlinuxarm.org/arm/$repo ← #을 추가합니다.

(거의 끝 부분)

## California

 Server = http://ca.us.mirror.archlinuxarm.org/arm/$repo ← #을 제거합니다.
https://www.archlinux.org/mirrorlist/

2013년 3월 10일 일요일

Archlinux에서 필요한 기본 실행명령어와 참조사이트(POGOPLUG SERIES 4용)

1. 시작하기 전에...

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

 '포고플러그 시리즈 4에 적용되는 Archlinux' 기초 명령어를 모아 봤습니다. 이 명령어만 알아도 포고 4에 Archlinux를 설치하고 기타 프로그램을 설치할 수 있습니다. 또한 리눅스에서 명령어를 입력할 때는 띠어 쓰기가 중요합니다. 띠어쓰기의 차이가 명령어를 실행되고 안되고의 차이를 만듭니다.


프로그램 설치

pacman -Sy 프로그램 이름
pacman -S 프로그램 이름 (vsftp설치 시)


프로그램 제거

pacman -Rsn 프로그램 이름


프로세스 실행명령어 (rc.d 명령이 안될 때는 systemctl로 대체하세요.)

systemctl start 프로세스 이름


프로세스 실행중단(rc.d 명령이 안될 때는 systemctl로 대체하세요.)

systemctl stop 프로세스 이름


프로세스 재시작어어 (rc.d 명령이 안될 때는 systemctl로 대체하세요.)

systemctl restart 프로세스 이름


디스크확인 및 파티션 상태

fdisk -l


디스크 상태보기(파티션이나 폴더 상태)

df -h


파일제거

rm -rf 파일명 - (삼바에서 접속해서 지워도 됩니다. 그냥 windows에서 파일 마우스로 선택하고 del키 누르면 됩니다.ㅎㅎㅎ 삼바에서는 거의 필요가 없어요)


ext3로 디스크나 메모리를 포맷

mkfs.ext3 /dev/장치명 - (archlinux가 설치 후 파티션으로 나눠진 부분이나 새로 마운트 된 메모리, 디스크를 포맷할 때 사용함)


메모리 확인

free - (램이나 스왑영역의 메모리량과 사용량 등을 보여줍니다.)


재부팅

/sbin/reboot 



다음은 참조 사이트입니다. 찾아가 보세요.

사이트 설명
ArchLinuxARM Archlinux의 설치 원본사이트
이PD의 포고서버 Archlinux를 설치할 때 반드시 참조해야 하는 사이트
아쿠의 노멀로그 꼭 필요한 설치 명령어만 나열되어 있음
Archwiki MySQL MySQL에서 비번 모를 때 사용하는 명령어 모음
까먹지말자! MySQL에서 데이터베이스 삭제 시 필요한 명령어 제공
pogoplug user 고급 설정 설명이 자세히 나온 사이트

포고에 아크를 입히다.2 (포고플러그 시리즈 4)

1. 시작하기 전에...

Archlinuxarm, 이PD의 포고서버를 참고하였습니다.  포고플러그에 리눅스 설치는 기기가 고장날 수 있는 위험성이 있으며, 이 문서는 포고플러그 시리즈 4에 Archlinux 설치할 때를 기준으로 설명합니다.

 이제부터는 SSH상에서 Archlinux를 설치하는 방법을 설명하겠습니다. 캡쳐의 한계가 있어서 글로 대체합니다. 그리고 putty는 오른쪽 마우스 클릭이 붙여넣기 기능 하며, 명령어 입력에는 띠어쓰기가 중요합니다.




 3-1. 포고플러그의 내부 프로세스를 모두 중단합니다.

 killall hbwd


3-2. 파티션을 생성합니다.

 /sbin/fdisk /dev/sda

후에 화면에 차례대로 O엔터, P엔터, N엔터, P엔터, 1엔터, W엔터 칩니다. 이 명령어들은 파티션을 하나로 잡습니다. 이 명령에서 숫자 1은 파티션 개수를 의미합니다.
(포고플러그 4의 Archlinux에서는 HDD의 용량 표시를 GB가 아닌 실린더 단위, MB, KB로 표시합니다.)


 3-3. ext3 파일 시스템 포맷으로 디스크를 포맷합니다.

cd /tmp
wget http://archlinuxarm.org/os/pogoplug/mke2fs # 시간이 조금 걸립니다.
chmod +x mke2fs
./mke2fs -j /dev/sda1 yhfyuuyuyuuguigguguyuuig # 실행시간은 디스크에 따라 다릅니다.
mkdir alarm
mount /dev/sda1 alarm


3-4. ArchLinux를 다운로드하는 동시에 설치합니다.

cd alarm
wget http://archlinuxarm.org/os/ArchLinuxARM-armv5te-latest.tar.gz
tar -xzvf ArchLinuxARM-armv5te-latest.tar.gz # 시간이 오래 걸립니다.

rm ArchLinuxARM-armv5te-latest.tar.gz
sync



3-5. 드라이브를 언마운트합니다.

cd .. umount alarm


3-6. 부트를 설치합니다.  

여기가 모든 설치과정 중에 가장 중요합니다. 부팅을  할수 있도록 해주는  프로그램을 설치해 주는 단계인데, 잘못하고 넘어가면 Archlinux를 처음부터 다시 설치해야 하는 불상사가 생깁니다. 혹시 부트 설치과정 중에 에러가 생기지 않았나 확인하세요. 저는 '에러 메세지'를 '설치완료 메세지'로 착각해서 두번이나 다시 설치하는 짓을 했습니다. (뭐 덕분에 이런 글도 쓰지만요...)

cd /tmp
wget http://archlinuxarm.org/os/ppv4/ppv4-install.sh
chmod +x ppv4-install.sh
./ppv4-install.sh



3-7. 재부팅합니다.

 /sbin/reboot

그럼 SSH접속이 끈기고 다시 부팅되면 재로그인 합니다.

login as: root
root@192.168.1.3's password: root를 입력합니다.
Last login:


3-8. 비밀번호를 바꿉니다.

passwd
새로운 패스워드를 설정하고 엔터를 누릅니다. 그러면 설정됩니다.


3-9. 드라이브 연결시 automount가 되도록 합니다.

pacman -Sy udev-automount


3-10. pacman을 업그레이드 합니다.

pacman -Syu

포고에 아크를 입히다.1 (포고플러그 시리즈 4)

1. 시작하기 전에...

 인터넷에 보면 E02버전이나 B01버전의 archlinux 설치법은 나와있어도 포고플러그 시리즈 4에 대한 설치법은 안나와 있습니다. 그 이유를 추측하자면 E02모델에 비해 낸드나 램의 용량이 적고 CPU 클럭이 작아서 그런것이 아닌가 합니다. 그래서 더더욱 '포고플러그 시리즈 4' 를 선택안하는 것으로 생각합니다.

2. 포고플러그 시리즈 4의 장점

모든 사이트에서 말하지만, 포고에 리눅스를 설치하면 기기가 고장날 수 있습니다. 하지만 포고플러그 시리즈 4는 초보자가 막 다루어도 벽돌이 안되고 초기화가 매우 쉽습니다. E02모델 같은 경우 스크립트를 짜고 잘못돠면 sata부팅을 해야되는데, 포고플러그 시리즈 4는 USB메모리에 폴더만 만들고 부팅시키면 끝입니다. 또 하나의 장점이라고 한다면 HDD 인식을 잘합니다. E02모델의 인식오류 같은 증상은 없었습니다. 부족한 낸드와 램용량은 HDD에 스왑영역을 설정하면 됩니다. 대신 빠른 저장장치가 필요합니다. (5400RPM이면 괜찮음) 초보자에게는 시리즈 4를 추천합니다.
파일 이동속도가 빨라졌다는 게 가장 장점인 것 같습니다.

 그리고 리눅스의 토렌트 프로그램인 트랜스미션은 포고플러그의 활용을 더욱 높여 주었습니다. (7w 저전력으로 마구마구 받아주마ㅎㅎㅎ)


 또한 공짜 웹서버를 이용할 수 있게 되었는데, 웹서버 개념도 모르던 제가 ArchLinux를 설치하면서 웹서버의 하드웨어와 소프트웨어까지 구성하게 되었습니다. 활용도가 굉장히 좋습니다. (외부 다운로드 링크도 따로 뺄 수 있구요)

아직 초기단계입니다.

 그러면 이제부터 간략하게 포고플러그에 ArchLinux를 설치할 때 필요한 것들과 절차를 알아보겠습니다. (포고플러그에 리눅스 설치는 기기가 고장날 수 있는 위험이 있습니다.)

 저는 포고플러그 4에 ArchLinux를 설치할 때 과정을 크게 3가지로 나눕니다.
  1. SSH 접속 프로그램 다운받기
  2. SSH 접속 설정
  3. SSH 환경에서 명령어 입력으로 ArchLinux를 설치하기

1. SSH 접속 프로그램은 여기서 받으세요. (putty 다운링크)

2. SSH 접속 설정

  2-1. 포고플러그 홈피에서 SSH설정을 합니다.(물론 포고에 회원가입을 합니다.)

1. 로그인 후 security에서 위에 체크항목을 체크합니다.
2. 설정창에 비밀번호를 입력하면 포고의 SSH가 활성화 됩니다.

  2-2. putty를 실행하고 ip를 입력하면 됩니다.

빨간 동그라미가 표시된 곳에 입력하고open을 클릭합니다.

  2-3. 그럼 다음과 같은 화면이 나오는데, 이러면 SSH접속이 성공한 것입니다.

  

다음장에...