티스토리 뷰

OS/Linux

CentOS 7 rails 서버 세팅

엘키 2016. 2. 8. 23:53

nano 설치

  1. yum -y install nano


rbenv 설치 [ruby, rails]

  1. 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
  2. git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
  3. git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
  4. 환경 변수 설정
    1. export PATH="$HOME/.rbenv/bin:$PATH"
      eval "$(rbenv init -)"
  5. ruby 설치
    1. rbenv install 2.3.0
      rbenv global 2.3.0
      rbenv rehash
      ruby -v
      
  6. rails 설치
    1. gem install rails

postgresql

  1. sudo yum install postgresql-server postgresql-contrib postgresql-devel
  2. sudo postgresql-setup initdb
  3. nano /var/lib/pgsql/data/pg_hba.conf
    1. 외부 접속 허용하기 [pg_hba.conf]
      1. host    all     all     0.0.0.0/0       password
    2. rails와의 연결을 위해 md5로 암호화 설정
      1. local   all             all                                     md5
        host    all             all             127.0.0.1/32            md5
  4. nano /var/lib/pgsql/data/postgresql.conf
    1. 외부 접속 허용하기 2 [postgresql.conf]
      1. #listen_address = 'localhost' 에서 listen_address = '*'로 수정.
  5. 계정 생성
    1. postgres로 로그인
      1. sudo su - postgres 
    2. Create a PostgreSQL superuser user with this command (substitute the highlighted word with your own username):
      1. createuser -s pguser
    3. To set a password for the database user, enter the PostgreSQL console with this command: 
      1. psql
    4. 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:
      1. \password pguser
    5. Enter your desired password at the prompt, and confirm it. Now you may exit the PostgreSQL console by entering this command: 
      1. \q 
    6. Now that your PostgreSQL user is set up, switch back to your normal user:
      1. exit
  6. 방화벽 개방
    1. firewall-cmd --permanent --add-port=5432/tcp
    2. firewall-cmd --reload

redis

  1. download & make
    1. cd /usr/local/src 
    2. wget http://redis.googlecode.com/files/redis-2.4.17.tar.gz
    3. tar xvfz redis-2.4.17.tar.gz
    4. cd redis-2.4.17
    5. make -j4 && make install  -j4
  2. install
    1. cd utils
    2. ./install_server.sh
  3. test
    1. redis-cli
      1. ping
      2. PONG [PONG이 안오면 실패]

머신 초기 세팅 [디스크 할당 및 폴더 설정]

#디스크 목록 보기

  • fdisk -l

 

#디스크 할당

 

#디스크 초기화 [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

 

#디스크 마운트

  • 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 설치

  1. 필요한 패키지 설치
    1. yum install gcc gcc-c++
    2. yum install openssl-devel
    3. yum install make
  2. node.js wget
    1. cd /usr/src
    2. wget http://nodejs.org/dist/v0.10.22/node-v0.10.22.tar.gz
  3. 압축 해제
    1. tar zxvf node-v0.10.22.tar.gz
    2. cd node-v0.10.22
  4. 설치
    1. ./configure
    2. make && make install

저장소 받아오기

  1. cd /usr/share
  2. 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" 로 수정.

  • nginx 설치

  • 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


'OS > Linux' 카테고리의 다른 글

CentOS7 MySQL 설치  (0) 2016.08.20
CentOS7 redmine 설치  (0) 2016.08.20
CentOS 7 FTP 서버  (0) 2016.02.08
윈도우 서버에서 리눅스 서버로의 감상  (0) 2015.11.15
Cent OS 7 svn 설치  (0) 2015.11.13
댓글