2015년 12월 21일 월요일

cordova to apk build with command (코르도바 command로 사인되어진 apk 만들기)

http://stackoverflow.com/questions/26449512/how-to-create-signed-apk-file-using-cordova-command-line-interface

2015년 12월 1일 화요일

windows7 설치 드라이버 로드 ( usb3.0 컨트롤러 드라이버 로드 ) 우분투

    
1. 사용하는 OS : ubuntu 14.04

2. 설치하려는 OS : windows 7 ultimate 64bit

3. 상황 : windows7 은 usb2.0 드라이브에 iso -> usb 로 옮겨 새로운 pc에 설치하려 하였더니 windows7 에 usb3.0 컨트롤러 드라이버가 통합되어 있지 않아 설치 화면에서 드라이버 로드 뜨고 넘어가지 않음.

4. 방법
    - pc bios에서 usb3.0컨트롤러를 끌수있으면  끄고 usb2.0포트만을 사용하여 설치
    - widnows7 이미지에 메인보드에 맞는 usb3.0 컨트롤러를 통합하여 설치

5. 사용방법
    - windows7 이미지에 메인보드에 맞는 usb3.0 컨트롤러를 통합하여 설치

6. 기타
    - 사용하는 OS가 우분투이고 다른 블로그에서 나오는 내용은 완전 통합을 목적으로 기술되어 드라이버를 이미지에만 추가하여 설치 프로세스내에서 드라이버를 골라 설치하는 방법으로 진행함.

7. 프로세스
    1) windows7 ios -> usb

    2) usb안의 source/boot.wim 파일 복사하여 pc로 이동

    3) wimlib-imagex mountrw [이미지명] [여러이미지의경우 이미지 순서] [마운트할 디렉토리]   ( mountrw를 사용하여 수정할수있게 마운트 )
       ex) wimlib-imagex mountrw boot.wim 1 ~/mnt/disk

    4) 자신의 pc 메인보드에 맞는 드라이버를 마운트한 이미지의 아무 폴더에나 복사

    5) wimlib-imagex unmount [마운트한 디렉토리] --commit    ( unmount를 사용하여 마운트 해제. commit 옵션으로 이미지 수정함

    6) 수정완료한 boot.wim 을 usb디스크 source/boot.wim 과 교체

    7) 완료한 usb를 꽂고 windwos7 설치과정을 진행하고 드라이버 로드 나올경우 넣어둔 드라이버 폴더 선택하여 드라이버 로드하여 설치

    8) 드라이버 로드할때 pci 컨트롤러 -> usb 컨트롤러? -> usb 허브 순서로 선택해서 로드해야 가능한것으로 보임

    9) 드라이버 로드하니 usb키보드가 안먹는것 같다. usb->ps2젠더등을 준비하여 ps2키보드 사용.


2015년 7월 6일 월요일

android 개발중 API 버전, 해상도별로 테스트

하드웨어단말기가 없을경우 
oracle 사의 virtualbox 와 연동되어 사용가능한
android 가상 프로그램

https://www.genymotion.com

1. Linux, Mac, Windows 프로그램을 지원함으로 좋다.
2. 이미지를 만들지 않고 자체적으로 다운받아 써서 간편하다.
3. eclipse 와 연동시 편하다.

2015년 6월 13일 토요일

ioncube 설치

php 5.6 에 ioncube 설치

  • download : http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
  • 압축해재 후 이동
    • tar -xvf ./ioncube_loaders_lin_x86_64.tar.gz
    • mv ioncube /usr/local
  • php.ini 파일 수정 
    • 압축 해제한 폴더내에 각 php 버전별 so 파일 존재한다. 맞는 버전으로 load
    • [ioncube]
      zend_extension_ts=/usr/local/ioncube/ioncube_loader_lin_5.6_ts.so
      zend_extension=/usr/local/ioncube/ioncube_loader_lin_5.6.so
  • apache 재시작 및 확인
    • php -v 

 

Zend guard loader 설치

php 5.6 에 zend guard loader 설치

  • download : http://www.zend.com/en/products/loader/downloads#Linux 에서 버전에 맞는 파일 다운로드.
  • 수행 명령:
    • cp ZendGuardLoader.so /usr/lib64/
  • /usr/local/apache/conf/php.ini 수정
    • [Zend.loader]
      zend_extension=/usr/lib64/ZendGuardLoader.so
      zend_loader.enable = 1
      zend_loader.disable_licensing = 0
      zend_loader.obfuscation_level_support = 3
  • apache 재실행 및 php -v 로 확인 아래의 내용이 나오면 정상 설치완료.
        


  •  truble shooting.
    • 만약 php -v 로 확인시 symbol ~~ global 어쩌구 하면서 안될경우 apache 설치시 ./configure 파라미터중 --with-mpm=prefork 를 안넣고 설치해서 발생하는 오류다.

modsecurity 설치

apache 2.4.12 에 modsecurity 2.9.0설치

  • download : https://www.modsecurity.org/tarball/2.9.0/modsecurity-2.9.0.tar.gz
  • 수행 명령 :
    • yum install  expat expat-devel
    • ./configure --with-apxs=/usr/local/apache/bin/apxs 
    • make
    • make install
  • apache 설정파일 변경
    • vi /usr/local/apache/conf/httpd.conf
      • LoadFile /usr/lib64/libxml2.so 
      • LoadFile /usr/lib64/liblua-5.1.so
      • LoadModule security2_module modules/mod_security2.so
         
  • rule 파일 
    • mkdir /usr/local/apache/conf/modsecurity  # rule 파일 저장위치 
    • vi /usr/local/apache/conf/httpd.conf
      • Include conf/modsecurity/*.conf
    • /usr/local/apache/conf/modsecurity/{filename}.conf 로 rule 파일 생성 및 apache 재 기동

CenOS 6.6에 apache 2.4.12, php 5.6 소스 설치

apache 2.4.12
php 5.6 을 소스 설치 하였으며
의존성 관련 설치도 순서대로 다 나열하겠다.

apache 설치시 필요한 apr, apr-util, pcre 는 yum 으로 설치해도 가능하지만
아직 yum 의 apr, apr-util 버전이 apache 2.4.12 설치에 필요한 버전을 충족시키지 못한다.

이 글을 작성하는 현재는 yum 으로 설치한 apr, apr-util 은 버전의 문제가 있어 소스 설치 하였다.

설치 순서는 아래와 같다.
- apr 
- apr-util
- pcre
- apache
- php



  1. apr 
    • download : http://mirror.apache-kr.org//apr/apr-1.5.2.tar.gz
    • 수행 명령 : 
      • yum install gcc
      • ./configure --prefix=/usr/local/apr 
      • make
      • make install  
    • configure 설명 : 
      • prefix : 설치할 위치
     
  2. apr-util 
      •  download : http://mirror.apache-kr.org//apr/apr-util-1.5.4.tar.gz
      • 수행명령 : 
        • ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
        • make
        • make install
      • configure 설명 :
        • prefix : 설치할 위치
        • with-apr : 참조할 apr 의 설치 위치

  3. pcre 
    • 수행명령 :
      • yum install pcre pcre-devel
     
  4. apache
    • download : http://apache.tt.co.kr//httpd/httpd-2.4.12.tar.gz
    • 수행명령 :
      • ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-module=so --enable-so --enable-mods-shared=all --with-mpm=prefork
      • make
      • make install
    • configure 설명
      • prefix : 설치할 위치
      • with-apr : 참조할 apr의 설치 위치
      • with-apr-util : 참조할 apr-util의 설치 위치
      • enable-moduel=so : module 로드 관련으로 보입니다.
      • enable-so : module 로드 관련으로 보입니다. 해당 파라미터가 없을경우 php 소스 설치시 오류가 발생
      • enable-mods-shared=all : 공유 모듈에 대한것으로 보입니다.
      • with-mpm=prefork : apache thread 관련으로 알고있는데 해당 파라미터가 없을경우 php 설치후 Zend guard loader 등의 설치시 php.ini에 등록해도 올라가질 않습니다.
    • 기타 : with-mpm-prefork 파라미터 누락시 php.ini 에 zend guard loader, ioncube 등을 올려도 php -v 로 확인시 오류 메세지가 발생됩니다.

  5. php
    • download : http://php.net/downloads.php
    • 수행명령 : 
      • yum install perl perl-devel
      • yum install libxml2 libxml2-devel
      • yum install gd gd-devel
      • ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/apache2/conf --with-curl --enable-calendar --enable-shmop --enable-ftp --enable-sockets --disable-cgi --with-gd --with-png-dir=/usr/lib --with-zlib-dir --with-jpeg-dir=/usr/lib --with-freetype-dir=/usr/local/freetype --with-iconv --enable-mbstring
      • make
      • make install
    • configure 설명 : 
      • prefix : 설치 위치
      • with-apxs2 :apache apxs 위치 
      • with-config-file-path : php.ini 파일을 위치시킬 위치
    • 기타 :configure 파라미터에 따라 우선적으로 설치해야할 의존성 패키지 들이 있습니다. configure 중 오류발생시 해당 오류에 맞는 패키지를 yum 으로 설치하면서 진행하면 이상 없이 진행이 가능합니다.


 다음은 해당 내용을 설치하며 남긴 동영상이다.


2015년 4월 6일 월요일

apache tomcat 연동 (mod_jk)

아파치와 톰켓 연동방법

연동방식은 여려가지가 있다고 한다.

mod_jk, mod_proxy, mod_proxy_ajp

나는 mod_jk 방식을 설명한다.


1. apache 사이트에서 tomcat-connector 다운로드
    http://tomcat.apache.org/download-connectors.cgi

2. 압축 해제 후 컴파일
    # tar -xvf tomcat-connectors-1.2.40-src.tar.gz
    # tomcat-connectors-1.2.40-src/native/configure --with-apxs=/usr/sbin/apxs
    # make
    # make install

    - apxs 가 없을경우
      yum install httpd-devel
    - gcc 가 없을경우
      yum install gcc

3. mod_jk 설치 확인
    apache 모듈 폴더에 mod_jk.so 가 복사되었는지 확인한다.
    cd /etc/httpd/modules

4. 아파치 설정파일 수정
    vi /etc/httpd/conf/httpd.conf
 
    # tomcat connector  모듈추가
    LoadModule modules/mod_jk.so

    Include conf.d/mod_jk.conf
    # 만약 JkWorkersFile only allowed once 오류 발생시 mod_jk.conf 에 있는 JkWorkersFile conf/workers_jk.properties 줄을 주석 처리하고 다음줄의 주석 해제
     # JkWorkersFile conf/workers_jk.properties

    <VirtualHost *:80> 하단에 아래 내용 추가
    JkMountCopy On

5. mod_jk 설정파일 추가
    vi /etc/httpd/conf.d/mod_jk.conf


<IfModule mod_jk.c>
  # Where to find workers.properties
  JkWorkersFile conf/workers_jk.properties
 
  # Where to put jk shared memory
  JkShmFile run/mod_jk.shm
 
  # Where to put jk logs
  JkLogFile logs/mod_jk.log
 
  # Set the jk log level [debug/error/info]
  JkLogLevel info
 
  # Select the timestamp log format
  JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

  ## url pattern 에 따른 connector mapping
  ##JkMountFile conf/uriworkermap.properties
</IfModule>

6. tomcat WAS worker 설정파일 추가
    vi /etc/httpd/conf/workers_jk.properties


#worker.list=worker1, worker2
worker.list=worker1

## server 1
worker.worker1.port=8009
worker.worker1.host=server1
worker.worker1.type=ajp13
worker.worker1.lbfactor=1

## server 2
#worker.worker2.port=8009
#worker.worker2.host=server2
#worker.worker2.type=ajp13
#worker.worker2.lbfactor=1


7. WAS 에서 처리해야 할 목록 정의

   vi /etc/httpd/conf/uriworkermap.properties

## Mapping the URI /service1 under worker1
#/service1/*.do=worker1
#/service1/*.jsp=worker1

# /service2 요청으로 들어온 것은 worker2 로 mount
#/service2/*=worker2

# png와 jpg 는 apache 가 처리
#!/service2/*.png=worker2
#!/service2/*.jpg=worker2



  ## 아래와 같이 설정하면 모든 요청(jsp, do, image, js등)을 tomcat으로 보내서 처리
한다.
/*=worker1


8. Tomcat server.xml 에서 AJP1.3  Connector 부분 주석 제거하고 테스트.



   

2015년 4월 5일 일요일

리눅스 시작프로그램 등록 chkconfig

리눅스 시작프로그램 등록방법.

1. /etc/rc.d/init.d  에 서비스 스크립트 등록
 
    스크립트 상단에 아래의 주석 알맞게 수정하여 등록 ( chkconfg 등록시 정보로 사용되어지는 주석임 )
     chkconfig : 345 85 15
     의 345 는 런레벨 3, 4, 5의 뜻임. 런레벨은 구글에 '리눅스 런레벨' 검색.
     85 는 데몬실행 우선순위
     15 는 데몬 종료 우선순위임.

    #!/bin/bash
    #
    # svn_custom      Startup script for the SVN Server
    #
    # chkconfig: 345 85 15
    # description: start stop restart SVN server
    # processname: svn_custom  
    case "$1" in
    start) #start
    echo -n "Starting svn server"
    #daemon svnserve -d -r /home/svn/svn_repo
    svnserve -d -r /home/svn/svn_repo
    echo
    ;;
    stop) #stop
    echo -n "Stopping svn server"
    #daemon pkill 'svnserve'
    pkill 'svnserve'
    echo
    ;;
    restart) #restart
    $0 stop
    $0 start
    ;;
    *) #etc doesn't insert param
    echo "Usage:$0 {start|stop|restart}"
    exit 1
    esac
    exit 0


2. 생성한 스크립트 테스트
     root  # service svn_custom restart

3. chkconfig 에 등록
     chkconfig --add 스크립트명

4. chkconfig 등록 확인
     chkconfig --list

5. OS 재시작하여 확인인인



 

2015년 3월 26일 목요일

라즈베리파이 RF 홈 오토메이션 (2)

우리집은 오래된 단독주택이다.

집앞 대문에서 벨을 누르면 집 안에서 버튼 꾹~ 눌러주고 대문이 찌~잉 하면서 문이 열리는.

근데 이게 요즘같은 현관문 비밀번호로 여는 새상에 키를 가지고 대문을 열어야 한다니...

아주 마음에 안들고 귀찮았다.

난 프로그래머고 전자공고를 나왔으며( 맨날 잠만 잤지만 ) 하고자 하는 일은 하는 성격이다.

그래서 원래는 이 글을 여러 편으로 적으면서 집 안의 전등들을 원격으로 제어하는 글을 적으려 했지만 대문제어를 먼저 했다.

준비는 다음과 같았다.

1. 네트워크와 연결된 라즈베리 파이.
2. 5V로 동작하는 220V 릴레이 모듈 
3. 전기선.
4. 라즈베리파이에서 돌고 있을 C 서버 프로그램.
5. 안드로이 프로그램.


동작원리.
1. 안드로이드에서 문열림 버튼을 누르고 있는다.
2. 안드로이드에서 네트워크를 통해 우리집 공유기로 신호가 간다.
3. 공유기에서 라즈베리파이로 접근.
4. 라즈베리 파이에서 돌고있는 서버는 소켓으로 연결되어 특정 신호 캐치.
5. 라즈베리 파이가 5V 신호로 220V릴레이 모듈 ON
6. 대문 찌~잉 문열리는 전류 들어옴.
7. 안드로이드 버튼에서 손꾸락 땜.
8. 2~4번 같은 동작
9. 라즈베리 파이가 5V 신호로 220V릴레이 모듈 OFF
끝.

뭐 처음 어떻게 해야하지? 이게 어려웠지 별거 없었음.


대문제어 한 김에 집 현관 비밀번호 키, 전등 들도 전부 하려고 하는데..

생각했던 RF 릴레이 모듈로만 하긴 힘들다는걸 알았다.

이유는 RF 통신을 너무 모르고 있었다는데 있는데
RF통신은 송신기 수신기가 있고 송신기가 보내는 신호는 범위 내에 있는 모든 수신기가 수신을 한다.
무전기 누가 말하면 근처에 있는 사람들 다 들리는것 처럼.
근데 각 컨트롤할 현관 혹은 전등에서는 보내는 신호중 자기것만 필터링 해야 하는거지..
그래서 RF 통신 수신기 + Arduino Nano V3.0 셋트로 가려고 알아보고 있음.

조금더 알아보고 구입 내역 기록 하겠다.