기본 콘텐츠로 건너뛰기

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

댓글

이 블로그의 인기 게시물

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 리눅스 시스템 내에 대량의 파일을 복사할 때도 사용하면 편하다...

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

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

buddy

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