복붙노트

[REDIS] Webfaction에 레디 스 설정

REDIS

Webfaction에 레디 스 설정

Webfaction 호스팅 계정을 공유에 레디 스 데이터베이스를 설정하는 데 필요한 단계는 무엇인가?

해결법

  1. ==============================

    1.때문에 Webfaction 서버의 특별한 환경 규제의 설치 지침은 것 같이 간단으로하지 않습니다. 그럼에도 불구하고 마지막에 당신은 완전히 기능 레디 스 서버가있는 것이다 숙박까지 다시 부팅 한 후에도 그. 나는 개인적 년 전 반에 대한 다음과 같은 절차에 의해 레디 스를 설치하고 그 이후 flawlessy를 실행하고있다. 하지만 경고의 작은 낱말은, 반년는 서버가 무거운 사용에 따라되지 않았습니다 특히 때문에, 긴 시간이 아니다.

    때문에 Webfaction 서버의 특별한 환경 규제의 설치 지침은 것 같이 간단으로하지 않습니다. 그럼에도 불구하고 마지막에 당신은 완전히 기능 레디 스 서버가있는 것이다 숙박까지 다시 부팅 한 후에도 그. 나는 개인적 년 전 반에 대한 다음과 같은 절차에 의해 레디 스를 설치하고 그 이후 flawlessy를 실행하고있다. 하지만 경고의 작은 낱말은, 반년는 서버가 무거운 사용에 따라되지 않았습니다 특히 때문에, 긴 시간이 아니다.

    설치, 테스트, 서버 시작 서버 관리 및 서버 실행을 유지 : 지침은 다섯 개 부분으로 구성되어 있습니다.

    당신의 Webfaction 쉘에 로그인

    ssh foouser@foouser.webfactional.com
    

    레디 스 다운로드 사이트에서 최신 레디 스를 다운로드합니다.

    > mkdir -p ~/src/
    > cd ~/src/
    > wget http://download.redis.io/releases/redis-2.6.16.tar.gz
    > tar -xzf redis-2.6.16.tar.gz
    > cd redis-2.6.16/
    

    만들기 전에 참조는 서버가 리눅스 32 또는 64 비트입니다. 설치 스크립트는 적어도 Webfaction의 CentOS는 5 시스템에서 잘 32 개 비트 환경을 처리하지 않습니다. 비트의 명령 UNAME -m이다. 리눅스는 32 비트 인 경우, 결과는 다음의 경우 64 비트 x86_64에,는 i686 것이다. 자세한 내용은이 대답을 참조하십시오.

    > uname -m
    i686
    

    서버가 64 비트 (x86_64의)의 경우, 단지합니다.

    > make
    

    서버가 32 비트 (는 i686) 인 경우 그러나 당신은 약간의 여분의 물건을 수행해야합니다. 이 명령 메이크업 32 비트는하지만 오류가 발생합니다. 편집 설치 스크립트에서 줄 일 수 있도록 32 비트를 확인합니다.

    > nano ~/src/redis-2.6.16/src/Makefile
    

    이에서 라인 (214)을 변경

    $(MAKE) CFLAGS="-m32" LDFLAGS="-m32"
    

    이에

    $(MAKE) CFLAGS="-m32 -march=i686" LDFLAGS="-m32 -march=i686"
    

    및 저장합니다. 그런 다음 32 비트 플래그와 함께 메이크업을 실행합니다.

    > cd ~/src/redis-2.6.16/  ## Note the dir, no trailing src/
    > make 32bit
    

    실행 파일은 디렉토리 ~ / src에 / 레디 스-2.6.16 / SRC /로 만들어졌다. 실행 파일은 레디 스-CLI, 레디 스 서버를 포함-벤치 마크 레디 스 및 레디 스-감시합니다.

    설치의 출력에서 ​​알 수 있듯이,이 테스트를 실행하여 모든 항목이 예상대로 작동을 보장하기 위해 좋은 것입니다.

    Hint: To run 'make test' is a good idea ;)
    

    불행하게도 테스트는 기계 web223에 대한 최소한의 기본하지 않은 설치 될 tlc8.6.0이 필요합니다. 그래서 당신은 소스에서 먼저 설치해야합니다. 은 Tcl / Tk의 설치 노트와 컴파일 노트를 참조하십시오.

    > cd ~/src/
    > wget http://prdownloads.sourceforge.net/tcl/tcl8.6.0-src.tar.gz
    > tar -xzf tcl8.6.0-src.tar.gz
    > cd tcl8.6.0-src/unix/
    > ./configure --prefix=$HOME
    > make
    > make test # Optional, see notes below
    > make install
    

    메이크업 테스트와 테스트 Tcl은 시간이 걸릴 것 또한 WebFaction의 환경 규제로 인해 실패합니다. 당신이 건너 나는 제안한다.

    이제 우리는 TLC는 우리가 레디 스 테스트를 실행할 수 있습니다 설치되어있다. 테스트는 시간이 오래 걸릴 또한 일시적으로 메모리의 꽤 많은 양을 사용합니다.

    > cd ~/src/redis-2.6.16/
    > make test
    

    시험 후에는 계속 준비가 된 것입니다.

    첫째, Webfaction 제어판을 통해 사용자 지정 응용 프로그램 (사용자 지정 응용 프로그램 포트 (듣기))를 만듭니다. 예를 들어 fooredis 위해 이름을 지정합니다. 당신은 레디 스 같은 호스트에서 즉 로컬에만 사용되는 경우 앱의 도메인이나 웹 사이트를 만들 필요는 없습니다.

    두 번째는 앱 주어진 소켓 포트 번호에 대한 메모를합니다. 예제가 23,015을하자.

    응용 프로그램의 디렉토리에 이전에 컴파일 된 실행 파일을 복사합니다. 당신은 당신이 필요로하는 모든 또는 유일한 사람을 복사 할 수도 있습니다.

    > cd ~/webapps/fooredis/
    > cp ~/src/redis-2.6.16/src/redis-server .
    > cp ~/src/redis-2.6.16/src/redis-cli .
    

    또한 샘플 구성 파일을 복사합니다. 당신은 곧 수정됩니다.

    > cp ~/src/redis-2.6.16/redis.conf .
    

    이제 레디 스 이미 실행 가능한 것입니다. 부부 문제 그러나이있다. 먼저 기본 레디 스 포트 6379가 이미 사용 될 수 있습니다. 둘째, 포트가없는 경우에도, 그래, 당신은 서버를 시작할 수 있지만, 그것은 당신이 쉘을 종료 같은 순간에 실행을 중지합니다. 첫 번째의 경우 redis.conf 편집해야하며, 초, 당신은 또한 redis.conf을 편집하여 해결 데몬이 필요합니다.

    레디 스 데몬 모드에서 자신을 실행 할 수 있습니다. 당신은 데몬의 프로세스 ID, PID를 저장 장소를 설정할 필요가있다. 일반적으로 pidfiles은 / var에 / 실행에 저장 / 되었음에도 불구하고, 현재의 환경 규제 때문에 당신은 당신의 홈 디렉토리에 그들을 위해 장소를 선택해야합니다. 이유는 서버 관리 부분에서 나중에 설명하기 때문에 좋은 선택은 실행 파일과 같은 디렉토리 아래에 pidfile을 넣어하는 것입니다. 당신은 자신을, 레디 스 자동으로 당신을 위해 그것을 만들어 파일을 만들 필요가 없습니다.

    이제 편집에 대한 redis.conf를 엽니 다.

    > cd ~/webapps/fooredis/
    > nano redis.conf
    

    다음과 같은 방식으로 구성을 변경합니다.

    이제 마지막으로, 레디 스 서버를 시작합니다. 레디 스 올바른 포트를 청취하고 데몬으로 실행되도록 conf의 파일을 지정합니다.

    > cd ~/webapps/fooredis/
    > ./redis-server redis.conf
    > 
    

    가 실행을 참조하십시오.

    > cd ~/webapps/fooredis/
    > ./redis-cli -p 23015
    redis 127.0.0.1:23015> SET myfeeling Phew.
    OK
    redis 127.0.0.1:23015> GET myfeeling
    "Phew."
    redis 127.0.0.1:23015> (ctrl-d)
    >
    

    당신이 원하는 경우 서버를 중지합니다.

    > ps -u $USER -o pid,command | grep redis
      718 grep redis
    10735 ./redis-server redis.conf
    > kill 10735
    

    또는

    > cat redis.pid | xargs kill
    

    사용 및 다음 부분에 대한 준비 작업과 편의를 위해 클라이언트를 열고 시작, 다시 시작하고 서버를 중지하는 데 도움이 스크립트를합니다. 쉬운 솔루션은 메이크 파일을 작성하는 것입니다. 메이크 파일을 작성할 때, 대신 공간의 탭을 사용해야합니다.

    > cd ~/webapps/fooredis/
    > nano Makefile
    
    # Redis Makefile
    client cli:
        ./redis-cli -p 23015
    
    start restart:
        ./redis-server redis.conf
    
    stop:
        cat redis.pid | xargs kill
    

    규칙은 매우 자명하다. 두 번째 규칙에 대한 특별는 그 데몬 모드로, 이미 실행중인 하나이 경우 새 프로세스를 생성하지 않습니다 ./redis-server를 호출하는 동안.

    세 번째 규칙은 그 안에 조용한 지혜가 있습니다. redis.pid이 fooredis의 디렉토리 아래에 있지만 /var/run/redis.pid에 예를 들어 저장되지 않은 경우 다음 서버를 중지 그렇게 쉽지 않을 것입니다. 당신은 동시에 여러 레디 스의 인스턴스를 실행할 경우에 주로 적용된다.

    규칙을 실행하려면 :

    > make start
    

    이제 레디 스의 인스턴스 당신이 그것을 중지하지 않고 쉘을 종료 할 수 있습니다 데몬 모드로 실행해야합니다. 이것은 아직 충분하지 않습니다. 어떤 프로세스가 충돌하면? 서버 컴퓨터는 무엇을 재부팅하면? 이 다루 두 cronjobs을 만들어야합니다.

    > export EDITOR=nano
    > crontab -e
    

    다음 두 줄을 추가하고 저장합니다.

    */5 * * * * make -C ~/webapps/fooredis/ -f ~/webapps/fooredis/Makefile start
    @reboot make -C ~/webapps/fooredis/ -f ~/webapps/fooredis/Makefile start
    

    첫 번째 실행 fooredis 각 5 분 보장합니다. 하나가 이미 실행중인 경우이 새로운 프로세스를 시작하지 않습니다 위와 같이 말했다. fooredis 두 번째의 보장하지만은 서버 시스템 재부팅 후 긴의 첫 번째 규칙 차기 직전에 시작됩니다.

    이에 대한 좀 더 deligate 방법은 영원히 예를 들어, 사용할 수있다. 주제에 대한 이상이 Webfaction 커뮤니티 스레드를 참조하십시오.

    이제 당신은 그것이있다. 일 많이 수행하지만 어쩌면 더 올 것이다. 당신이 좋아하는 수 상황이 여기에 포함 다음이 포함되지 않은 미래에해야 할 일.

    모든 아이디어, 의견이나 수정?

  2. ==============================

    2.Akseli의 훌륭한 대답을 요약하면 :

    Akseli의 훌륭한 대답을 요약하면 :

    assume your user is named "magic_r_user"
    
    cd ~
    wget "http://download.redis.io/releases/redis-3.0.0.tar.gz"
    tar -xzf redis-3.0.0.tar.gz
    mv redis-3.0.0 redis
    cd redis
    make
    make test
    create a custom app "listening on port" through the Webfaction management website
        assume we named it magic_r_app
        assume it was assigned port 18932
    cp ~/redis/redis.conf ~/webapps/magic_r_app/
    vi ~/webapps/magic_r_app/redis.conf
        daemonize yes   
        pidfile ~/webapps/magic_r_app/redis.pid
        port 18932
    test it
        ~/redis/src/redis-server ~/webapps/magic_r_app/redis.conf
        ~/redis/src/redis-cli -p 18932
        ctrl-d
        cat ~/webapps/magic_r_app/redis.pid | xargs kill
    crontab -e
        */1 * * * * /home/magic_r_user/redis/src/redis-server /home/magic_r_user/webapps/magic_r_app/redis.conf &>> /home/magic_r_user/logs/user/cron.log
    don't forget to set a password!
    
  3. ==============================

    3.당신은 레디 스를 설치하는 경우 컴파일 할 때 참고로, 2.8.8+ 오류, __sync_add_and_fetch_4에 정의되지 않은 참조를 얻을 수 있습니다. 자세한 내용은 http://www.eschrade.com/page/undefined-reference-to-__sync_add_and_fetch_4/를 참조하십시오.

    당신은 레디 스를 설치하는 경우 컴파일 할 때 참고로, 2.8.8+ 오류, __sync_add_and_fetch_4에 정의되지 않은 참조를 얻을 수 있습니다. 자세한 내용은 http://www.eschrade.com/page/undefined-reference-to-__sync_add_and_fetch_4/를 참조하십시오.

    나는 페이지가 지금까지 오프라인 경우 아래 해당 페이지에서 관련 부분을 붙여했습니다. 기본적으로 당신은 CFLAGS 변수를 내보내고 빌드 프로세스를 다시 시작해야합니다.

    [root@devvm1 redis-2.6.7]# export CFLAGS=-march=i686
    [root@devvm1 redis-2.6.7]# make distclean
    [root@devvm1 redis-2.6.7]# make
    
  4. from https://stackoverflow.com/questions/18622630/setting-up-redis-on-webfaction by cc-by-sa and MIT license