rbenv 설치 [ruby, rails]
- 설치
    - sudo yum update
- sudo yum install git
- sudo yum groupinstall -y ‘development tools’
- sudo yum install -y gcc-c++ glibc-headers openssl-devel readline libyaml-devel readline-devel zlib zlib-devel sqlite-devel
- sudo yum install -y glibc-devel libffi-devel
- git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
- git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
 
- 환경 변수 설정
    export PATH=”$HOME/.rbenv/bin:$PATH” 
 eval “$(rbenv init -)”
ruby 설치
- rbenv install 2.3.0
- rbenv global 2.3.0
- rbenv rehash
- ruby -v
rails 설치
- gem 설치
    - gem install rails
 
- postgresql
    - sudo yum install postgresql-server postgresql-contrib postgresql-devel
- sudo postgresql-setup initdb
- nano /var/lib/pgsql/data/pg_hba.conf
 
- 외부 접속 허용하기 [pg_hba.conf]
    host all all 0.0.0.0/0 password #rails와의 연결을 위해 md5로 암호화 설정 local all all md5 
 host all all 127.0.0.1/32 md5
- 외부 접속 허용하기 2 [postgresql.conf]
    - nano /var/lib/pgsql/data/postgresql.conf
        #listen_address = ‘localhost’ 에서 listen_address = ‘*‘로 수정. # 주석 풀기 
 
- nano /var/lib/pgsql/data/postgresql.conf
        
- 계정 생성
    - postgres로 로그인
        - sudo su - postgres
 
- Create a PostgreSQL superuser user with this command (substitute the highlighted word with your own username):
        - createuser -s pguser
 
- To set a password for the database user, enter the PostgreSQL console with this command: 
        - psql
 
- The PostgreSQL console is indicated by the postgres=# prompt. At the PostgreSQL prompt, enter this command to set the password for the database user that you created:
        - \password pguser
 
- Enter your desired password at the prompt, and confirm it. Now you may exit the PostgreSQL console by entering this command: 
        - \q
 
- Now that your PostgreSQL user is set up, switch back to your normal user:
        - exit
 
 
- postgres로 로그인
        
- 방화벽 개방
    - firewall-cmd –permanent –add-port=5432/tcp
- firewall-cmd –reload
 
- redis
    - download & make
        - cd /usr/local/src
- wget http://redis.googlecode.com/files/redis-2.4.17.tar.gz
- tar xvfz redis-2.4.17.tar.gz
- cd redis-2.4.17
- make -j4 && make install -j4
 
- install
        - cd utils
- ./install_server.sh
 
- test
        - redis-cli
            - ping
- PONG [PONG이 안오면 실패]
 
 
- redis-cli
            
 
- download & make
        
머신 초기 세팅 [디스크 할당 및 폴더 설정]
- 디스크 목록 보기
    - fdisk -l
 
- 디스크 할당
    - fdisk /dev/[디스크명]
        - 이후 옵션은 http://yonoo88.tistory.com/651 참조
 
 
- fdisk /dev/[디스크명]
        
- 디스크 초기화 [ext4로 초기화] 아래 디스크3은 nextmv에서 제공해준 디스크가 500gb씩 분리되어있는 3개의 디스크만 사용할 것 이므로.
    - mkfs.ext4 /dev/xvdg1
- mkfs.ext4 /dev/xvde1
- mkfs.ext4 /dev/xvdc1
 
- ext 폴더 생성
    - cd /usr/local
        - mkdir ext1
- mkdir ext2
- mkdir ext3
 
 
- cd /usr/local
        
- 디스크 마운트
    - mount -t ext4 /dev/xvdg1 /usr/local/ext1
- mount -t ext4 /dev/xvde1 /usr/local/ext2
- mount -t ext4 /dev/xvdc1 /usr/local/ext3
 
- db 데이터 복사
    - cp -r /var/lib/pgsql/data /usr/local/ext2
 
- 폴더 권한 설정
    - chmod -R 700 /usr/local/ext2
- chown -R postgres:postgres /usr/local/ext2
 
- PGDATA 경로 수정.
    - nano /usr/lib/systemd/system/postgresql.service
- /usr/local/ext2/data
- systemctl daemon-reload
- service postgresql restart
- 해당 작업 이후에는 설정 파일 경로가 /usr/local/ext2/data 로 바뀌는 점에 유의하자.
 
- node.js 설치
    - 필요한 패키지 설치
        - yum install gcc gcc-c++
- yum install openssl-devel
- yum install make
- node.js wget
- cd /usr/src
- wget http://nodejs.org/dist/v0.10.22/node-v0.10.22.tar.gz
 
- 압축 해제
        - tar zxvf node-v0.10.22.tar.gz
- cd node-v0.10.22
 
- 설치
        - ./configure
- make && make install
 
 
- 필요한 패키지 설치
        
- 저장소 받아오기
    - cd /usr/share
- svn checkout svn://[저장소경로] [받아올이름]
 
- nginx with thin
    - thin 설정 파일 생성. [서버 10개]
        - thin config -C /usr/share/thin -c /usr/share/web_server –servers 10 -e production
 
- 로그 경로 수정.
        - nano /usr/share/thin
- log: “/usr/local/ext1/log/thin.log” 로 수정.
 
 
- thin 설정 파일 생성. [서버 10개]
        
- nginx 설치
    - sudo yum install epel-release
- sudo yum install nginx
- https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-7
 
- nginx 설정 추가
- 주의 : /usr/share/web_server/log 폴더 생성 되어 있어야 nginx service 가동 가능.
    cd /etc/nginx 
 mkdir sites-enabled
 nano sites-enabled/thin
 upstream thin {
 server 127.0.0.1:3000;
 server 127.0.0.1:3001;
 server 127.0.0.1:3002;
 server 127.0.0.1:3003;
 server 127.0.0.1:3004;
 server 127.0.0.1:3005;
 server 127.0.0.1:3006;
 server 127.0.0.1:3007;
 server 127.0.0.1:3008;
 server 127.0.0.1:3009;
 }server { 
 listen 포트;
 server_name 서버이름;access_log /usr/local/ext1/web_server/log/access.log; 
 error_log /usr/local/ext1/web_server/log/error.log;root /usr/share/web_server/public/; 
 index index.html;location / { 
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Host $http_host;
 proxy_redirect off;if (-f $request_filename/index.html) { 
 rewrite (.*) $1/index.html break;
 }if (-f $request_filename.html) { 
 rewrite (.*) $1.html break;
 }if (!-f $request_filename) { 
 proxy_pass http://thin;
 break;
 }
 }
 }
 nano /etc/nginx/nginx.conf
 #맨 끝 } 안에 추가
 include sites-enabled/*;
- 서버 가동
    - thin -C /usr/share/thin start
 
- nginx 재 가동
    - service nginx restart