기본 콘텐츠로 건너뛰기

CentOS 6.7 + Mysql 5.6 + rbenv ruby rails + nginx ( + rubymine + vagrant chef )

설치 하다가 빡쳐서 정리함.

내용은 주로 digitalocean + qiita 등에 있는걸로 정리하였음.





일단 내가 사용할 서버에 CentOS 7 USB 가 정상적으로 인스톨 되지 않는 문제로 내키지 않았지만 CentOS 6.7 을 설치함.

그런데 이게 Mysql 5.1 이 yum repo 에 있어서 버전을 올릴 필요가 있었음.




1. setup CentOS

$ su

$ /usr/sbin/visudo
 
# User privilege specification
root    ALL=(ALL)       ALL
# add user id
demo    ALL=(ALL)       ALL 
 

$ yum install ibus ibus-hangul ibus-anthy
 
 
$ rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

$ rpm -Uvh http://mirror.premi.st/epel/6/i386/epel-release-6-8.noarch.rpm
$ rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
 
 




 
 
2. install MYSQL
 

$ rpm -qa | grep mysql
 
$ sudo yum remove mysql*
 
$ sudo yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
$ sudo yum install mysql-client mysql-server
 
$ rpm -qa | grep mysql 
mysql-community-release-el6-5.noarch
mysql-community-server-5.6.20-4.el6.x86_64
mysql-community-common-5.6.20-4.el6.x86_64
mysql-community-client-5.6.20-4.el6.x86_64
mysql-community-libs-5.6.20-4.el6.x86_64
 


$ mysql -version 
 
$ sudo /etc/init.d/mysqld start
$ sudo mysql -uroot -p
 
password change 
 
mysql> set password = password('New Pass'); 
mysql> exit
 
$ sudo chkconfig mysqld on
 
$ sudo chkconfig | grep mysql
 
 
 

3. install rbenv 

$ sudo yum install -y git-core zlib zlib-devel gcc-c++ patch readline readline-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison curl sqlite-devel
 
$ cd ~ 
$ git clone git://github.com/sstephenson/rbenv.git .rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ exec $SHELL

$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bash_profile
$ exec $SHELL -l
 


4. install ryby

$ rbenv install -v 2.2.0
$ rbenv global 2.2.0
 
$ ruby -v
 
$ echo "gem: --no-document" > ~/.gemrc
 
$ gem install bundler
 
 

5. isntall Rails
 
$ gem install rails -v 4.2.0
$ rbenv rehash
$ rails -v
 
 

6. isntall Javascript Runtime
 
$ sudo yum -y install epel-release
 
$ sudo yum install nodejs
 



7. create test application
 
$ cd /srv
$ mkdir www
 
$ sudo chown demo:demo -R www/
 
$ cd /srv/www
 
$ rails new testapp 

$ cd testapp

$ rake db:create
 
$ rails s
 
 
 
- end -
 
 
 
http://localhost:3000


 
install nginx
 
default nginx 1.0.... upgrade 1.8.
{
    $ sudo rm /var/run/nginx.pid
} 
 
$ sudo vim /etc/yum.repos.d/nginx.repo 

 
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
 
$ yum --enablerepo=nginx install nginx

{
    $ sudo /etc/init.d/nginx restart 
} 
 
install unicorn 
$ gem install unicorn
 

# Create a sample resource
$ rails generate scaffold Task title:string note:text

# Create a sample database
$ RAILS_ENV=development rake db:migrate
$ RAILS_ENV=production  rake db:migrate

# Create a directory to hold the PID files
$ mkdir pids    
 

Configuring Server 
 
$ vim config/unicorn.rb 
 
 
# Set the working application directory
# working_directory "/path/to/your/app"
working_directory "/srv/www/testapp"

# Unicorn PID file location
# pid "/path/to/pids/unicorn.pid"
pid "/srv/www/testapp/pids/unicorn.pid"

# Path to logs
# stderr_path "/path/to/log/unicorn.log"
# stdout_path "/path/to/log/unicorn.log"
stderr_path "/srv/www/testapp/log/unicorn.log"
stdout_path "/srv/www/testapp/log/unicorn.log"

# Unicorn socket
listen "/tmp/unicorn.testapp.sock"

# Number of processes
# worker_processes 4
worker_processes 2

# Time-out
timeout 30 
 
 
$ vim /etc/nginx/conf.d/default.conf 


upstream app {
    # Path to Unicorn SOCK file, as defined previously
    server unix:/tmp/unicorn.testapp.sock fail_timeout=0;
}

server {


    listen 80;
    server_name localhost;

    # Application root, as defined previously
    root /srv/www/testapp/public;

    try_files $uri/index.html $uri @app;

    location @app {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://app;
    }

    error_page 500 502 503 504 /500.html;
    client_max_body_size 4G;
    keepalive_timeout 10;
} 
 
 
$ unicorn_rails -c config/unicorn.rb -D 
 
$ sudo service nginx restart 



아직 정리 전인데 사용 가능한 "rubymine + vagrant"
  

http://qiita.com/Avene/items/3f5bedbb48bbd18fc1c4

댓글

이 블로그의 인기 게시물

사원으로 가면 암걸리는 회사.

(1) 어떠한 일이 벌어지던 지휘 명령 체계를 반드시 지키도록 강요한다. 의사 결정을 앞당기기 위한 샛길을 허락하지 않는다. (2) 간단하게 해결할 수 있는 안건도 위원회에서 검토하게 하며, 위원회는 가능한 크게 만든다. 최소 5명 이상. (3) 될 수 있는 한 자주 회의를 열도록 유도한다. (4) 이전 회의에서 정해진 것을 되풀이해서 검토하도록 유도한다. (5) 중요한 업무가 있어도 회의를 열게 한다. (6) 문서의 형식, 제출 일자, 오탈자를 집요하게 추궁한다. (7) 될 수 있는 한 문서의 양을 늘린다. (8) 업무 승인 수속을 될 수 있는 한 복잡하게 한다. 제 아무리 간단한 일에도 3명 이상의 승인을 필수가 되도록 유도한다. (9) 조직내 권한 문제를 집요하게 추궁한다. 상층부의 허락을 받지 않고 독단으로 해결해도 되는 지 끊임없이 지적한다. (10) 업무할당을 할 경우, 항상 중요도가 낮은 업무에 집중하도록 유도한다. (11) 새로운 직원에게 경험을 쌓을 시간과 자원을 주지 않는다.

buddy

https://buddy.works/ 깃 서비스가 엄청나게 많아 지고 있는것 같다. 최근에 gogs 도 그렇고 예전에 쓰던 github clone 들... 찾아보면 많을 것 같다. 이번에 페이스북에 광고로 올라온 buddy도 그렇다. 1프로젝트당 1$ 라는데... 기회가 되면 써 봐야지 -.-

linux tar.gz comp

ftp로 파일을 전송하는데 잡다한 파일들이 너무 많아서 (약 2만개) 전송에 시간이 너무 오래 걸리더라. 처음에는 scp로 복사 하려고 했는데 잘 안되서 했더니 엉망...; 그냥 압축해서 한번에 전송해서 수십분을 아껼 수 있었다. 유형 tar => 파일을 하나로 모은다. gzip => 압축한다. tar.gz => 하나로 모아서 압축한다. 압축/해제 tar로 압축 => tar -cvf temp.tar temp tar 압축풀기 => tar -xvf temp.tar tar.gz 압축하기 => tar -zcvf temp.tar.gz temp tar.gz 압축풀기 => tar -zxvf temp.tar.gz 리눅스 시스템 내에 대량의 파일을 복사할 때도 사용하면 편하다...