ruby環境構築及び関連環境構成
ruby環境構築、関連ツールの構成使用
関連ツール git vim nginx mongodb redis memcached mysql rvm || rbenv ruby システムライブラリ(Centos:yum,mac:brew,ubuntu:apt-get)本書は主にCentos環境の構築 varnish
開発環境構築の前置条件
ネットワーク構成 CentOS 6.2 64 bit最小化システム をインストール NIC の構成
vim/etc/sysconfig/network-scripts/ifcfg-eth0
NICの再起動:service network restart
注意:静的ipに構成する必要があるかどうか、関連構成:
yumソースの交換
ベースパッケージのインストール
どうきじかん
SSH鍵登録
参照先:http://blog.58share.com/?p=289
1. vim
概要
編集神器として:vimはあまり紹介する必要はありませんが、基本的にCentOSを初期化してインストールするとvi vimの多くのプラグインが付いていますが、管理が不便で、ここではVundleを使ってプラグインの管理をしています.
詳細については、以下を参照してください.http://blog.58share.com/?p=203
vimプロファイル:https://github.com/huhongda/scripts/blob/master/vimrc
CentOSインストール
2. git
gitバージョンコントローラCentOSインストール
git構成
git基本使用:
git-flowのインストール
概要:http://danielkummer.github.io/git-flow-cheatsheet/index.zh_CN.html
git flow基本使用
nginx
インストール
コンフィギュレーション wwwユーザ、ユーザグループ及びNginxログディレクトリ を作成する. Nginxプロファイル を作成する
参照先:https://github.com/huhongda/scripts/blob/master/nginx.conf nginx を起動起動nginx vim/etc/rcを構成する.local
nginx常用コマンド
詳細については、以下を参照してください.http://blog.58share.com/?p=158#more-158およびnginx公式サイトのドキュメント
memcached
インストール
使用
rails、phpバージョンクライアント使用リファレンス:http://blog.58share.com/?p=176
mysql
インストール
ダウンロードシステムに対応するバージョン:
インストール:
PATHパスの追加:
データベース・ストレージ・ディレクトリを作成するには、次の手順に従います.
データ情報の設定:
mysqlプロファイルを作成するには、次の手順に従います.
プロファイルの変更:vim/etc/my.cnf
参照先:http://blog.58share.com/?p=141
MongoDB
インストールおよび基本的な使用参考:http://blog.58share.com/?p=192
Redis
インストール
参照先:http://redis.io/download
構成リファレンス:http://redis.io/topics/quickstart
開始
varnish(一般的に生産環境に用いられる)
概要
Varnishは、高性能でオープンソースのリバースプロキシサーバとキャッシュサーバです.
インストール yum install -y varnish
2.
開始
詳細については、次のトピックを参照してください.
http://varnish-cache.org/
http://www.programmer.com.cn/14315/
rbenv
概要
一般的にrbenvまたはrvmによってrubyの複数のバージョンを管理します
rvmのインストールの使用参考:http://ruby-china.org/wiki/rvm-guide
一般的にrbenvを使用してrubyバージョンを管理します
具体的な参考:http://ruby-china.org/wiki/rbenv-guide
インストール1.
次のコードを
実行:source~/.bash_profile
インストール2.
https://github.com/fesplugas/rbenv-installer
使用
関連ツール
開発環境構築の前置条件
ネットワーク構成
vim/etc/sysconfig/network-scripts/ifcfg-eth0
EVICE="eth0"
BOOTPROTO="dhcp"
HWADDR="08:00:27:86:A1:4A"
NM_CONTROLLED="yes"
ONBOOT="yes"
NICの再起動:service network restart
注意:静的ipに構成する必要があるかどうか、関連構成:
EVICE="eth0"
BOOTPROTO="static"
IPADDR="192.168.10.1" # ip
NETMASK="255.255.255.0" #
GATWAY="192.168.10.1" #
HWADDR="08:00:27:86:A1:4A"
NM_CONTROLLED="yes"
ONBOOT="yes"
yumソースの交換
rpm -Uvh http://mirrors.sohu.com/fedora-epel/6/i386/epel-release-6-8.noarch.rpm
ベースパッケージのインストール
yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel
yum install -y openssl-devel make bzip2 autoconf automake libtool bison iconv-devel git-core ImageMagick
yum install -y libxml libxml-devel libxslt libxslt-devel wget
yum install -y pcre-devel openssl openssl-devel
yum install -y tcl
yum install -y libaio-devel
yum install -y ntpdate
どうきじかん
/usr/sbin/ntpdate 0.centos.pool.ntp.org;/sbin/hwclock -w
crontab -e
* */12 * * * /usr/sbin/ntpdate 0.centos.pool.ntp.org;/sbin/hwclock -w
SSH鍵登録
参照先:http://blog.58share.com/?p=289
1. vim
概要
編集神器として:vimはあまり紹介する必要はありませんが、基本的にCentOSを初期化してインストールするとvi vimの多くのプラグインが付いていますが、管理が不便で、ここではVundleを使ってプラグインの管理をしています.
詳細については、以下を参照してください.http://blog.58share.com/?p=203
vimプロファイル:https://github.com/huhongda/scripts/blob/master/vimrc
CentOSインストール
yum install -y vim
2. git
gitバージョンコントローラCentOSインストール
yum install -y git
git構成
git config --global user.name "jerry"
# vim ~/.gitconfig
[user]
name = jerry
email = your_email
[color] # git
branch = auto
diff = auto
interactive = auto
status = auto
[core]
editor = /usr/bin/vim
git基本使用:
git clone https://github.com/huhongda/scripts.git
git add . || git add direct_file
git commit -m 'you commit'
git push origin your_branch #
git push origin :your_branch #
git push origin master -f
git pull origin your_branch
git checkout your_first_branch
git merge your_branch
git remote update -p #
git remote -v # git
git remote add origin https://github.com/huhongda/scripts.git # git
git remote rm origin # git
git log # git
git log --graph
git log -p app/xxxx.rb ( )
git diff commitA commitB #
git blame file #
git clean -df untrack
git stash
git stash pop
git branch -a # ( )
git branch -d your_branch #
git status #
git checkout -b new_branch #
git-flowのインストール
概要:http://danielkummer.github.io/git-flow-cheatsheet/index.zh_CN.html
wget https://raw.github.com/huhongda/scripts/master/gitflow-installer.sh
/bin/bash gitflow-installer.sh
#
git flow init
# ,
git flow基本使用
## for developer
git checkout develop
git pull origin develop
git flow feature start new_branch
..develop..
git add .
git commit -m 'modify your branch'
git push origin new_branch
## base current branch
git checkout old_branch
git pull origin old_branch
git checkout -b new_branch
..
## for other
git flow feature publish new_branch
git remote update -p
git flow feature track new_branch
## for production
git flow feature track new_branch
git flow feature finish new_branch
git push origin :new_branch
### for release
git flow release start Version_1.02
git flow release publish Version_1.02
# release
git flow release track Version_1.02
# release
# master (release finish master )
git flow release finish -F -p Version_1.02
git push origin master
# hotfix
git remote update -p
git checkout master
git pull origin master
git checkout develop
git pull origin develop
git flow hotfix start xxoo
git add ..............
git commit -m "xxoo"
git remote update -p
git flow hotfix finish xxoo
git remote update -p
git checkout master
git pull origin master
git push origin master
git checkout develop
git pull origin develop
git push origin develop
nginx
インストール
cd /tmp
wget -c http://nginx.org/download/nginx-1.4.4.tar.gz
tar -zxf nginx-1.4.4.tar.gz
cd nginx-1.4.4
./configure --user=www --group=www --prefix=/usr/local/nginx \
--with-http_ssl_module --with-http_realip_module --with-http_addition_module \
--with-http_sub_module --with-http_gzip_static_module --with-http_realip_module \
--with-http_gunzip_module --with-http_stub_status_module --with-pcre \
--with-ipv6 --with-mail --with-mail_ssl_module --with-http_random_index_module
make
make test
make install
コンフィギュレーション
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
mkdir -p /data/pids/nginx/
mkdir -p /data/logs/nginx/
chmod +w /data/logs/nginx/
chmod +w /data/pids/nginx/
chown -R www:www /data/logs/nginx/
chown -R www:www /data/pids/nginx/
参照先:https://github.com/huhongda/scripts/blob/master/nginx.conf
wget https://raw.github.com/huhongda/scripts/master/nginx.conf
ulimit -SHn 65535
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ulimit -SHn 65535
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nginx常用コマンド
/usr/local/nginx/sbin/nginx -t #
/usr/local/nginx/sbin/nginx -s reload # Nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf # nginx
詳細については、以下を参照してください.http://blog.58share.com/?p=158#more-158およびnginx公式サイトのドキュメント
memcached
インストール
wget https://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
#memcached
wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar -zxf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure
make && make install
ln -sv /usr/local/lib/libevent-2.0.so.5 /usr/lib/
ln -sv /usr/local/lib/libevent-2.0.so.5 /usr/lib64/
cd ../
tar -zxf memcached-1.4.15.tar.gz
cd memcached-1.4.15/
./configure --prefix=/usr/local/memcached --with-libevent=/usr
make && make install
ln -sv /usr/local/memcached/bin/memcached /usr/bin/
source ~/.bashrc
/usr/sbin/useradd -g memcached memcached
#
memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid
#
vim /etc/rc.local
memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid
使用
rails、phpバージョンクライアント使用リファレンス:http://blog.58share.com/?p=176
mysql
インストール
ダウンロードシステムに対応するバージョン:
# (32 64 )
uname -m | sed -e 's/i.86/32/'
# 64bit
wget -c http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15-linux-glibc2.5-x86_64.tar.gz
# 32bit
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15-linux-glibc2.5-i686.tar.gz
インストール:
groupadd mysql
useradd -r -g mysql mysql
tar -zxf mysql-5.6.15-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.15-linux-glibc2.5-x86_64 /usr/local/mysql
cd /usr/local
chown -R mysql:mysql mysql
PATHパスの追加:
vim /etc/profile
#
MYSQL_HOME=/usr/local/mysql
PATH=$PATH:$MYSQL_HOME/bin
source /etc/profile
データベース・ストレージ・ディレクトリを作成するには、次の手順に従います.
mkdir -p /data/data/mysql
mkdir -p /data/logs/mysql
chown -R mysql:mysql /data/data/mysql
chown -R mysql:mysql /data/logs/mysql
chmod -R go-rwx /data/data/mysql
chmod -R go-rwx /data/logs/mysql
データ情報の設定:
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/data/mysql/ --explicit_defaults_for_timestamp
cp support-files/mysql.server /etc/init.d/mysql # mysql
/usr/local/mysql/bin/mysqladmin -u root password 'new-password' # root
#
vim /etc/init.d/mysql
basedir=/usr/local/mysql
datadir=/data/data/mysql
mysqlプロファイルを作成するには、次の手順に従います.
cp support-files/my-default.cnf /etc/my.cnf
プロファイルの変更:vim/etc/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
datadir = /data/data/mysql
pid-file = /data/data/mysql/mysql.pid
log-error = /data/logs/mysql/error.log
long_query_time = 0.5 #
slow_query_log = 1
slow_query_log_file = /data/logs/mysql/slowquery.log #
min_examined_row_limit = 10000
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
thread_concurrency = 8
log-bin=mysql-bin
server-id = 1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
参照先:http://blog.58share.com/?p=141
#
vim /etc/rc.local
/etc/init.d/mysql start
MongoDB
インストールおよび基本的な使用参考:http://blog.58share.com/?p=192
Redis
インストール
参照先:http://redis.io/download
wget -c http://download.redis.io/releases/redis-2.8.4.tar.gz
tar xzf redis-2.8.4.tar.gz
cd redis-2.8.4
make
cp redis-server /usr/local/bin/
cp redis-cli /usr/local/bin/
mkdir /var/redis
mkdir /etc/redis
mkdir /var/redis/6379
cp utils/redis_init_script /etc/init.d/redis
cp redis.conf /etc/redis/6379.conf
構成リファレンス:http://redis.io/topics/quickstart
開始
/etc/init.d/redis start
#
vim /etc/rc.local
/etc/init.d/redis start
varnish(一般的に生産環境に用いられる)
概要
Varnishは、高性能でオープンソースのリバースプロキシサーバとキャッシュサーバです.
インストール
2.
wget http://repo.varnish-cache.org/source/varnish-3.0.4.tar.gz
tar zxf varnish-3.0.4.tar.gz
cd varnish-3.0.4
./configure
make
make check ( )
make install
開始
#
cd /usr/local/etc/varnish/
wget https://raw.github.com/huhongda/scripts/master/varnish_default.vcl
mkdir -p /data/data/varnish
varnishd -f /usr/local/etc/varnish/varnish_default.vcl -a 0.0.0.0:80 -s file,/data/data/varnish/varnish_cache.data,128m -T 127.0.0.1:3500
# -T -a
# : !
# nginx
詳細については、次のトピックを参照してください.
http://varnish-cache.org/
http://www.programmer.com.cn/14315/
rbenv
概要
一般的にrbenvまたはrvmによってrubyの複数のバージョンを管理します
rvmのインストールの使用参考:http://ruby-china.org/wiki/rvm-guide
一般的にrbenvを使用してrubyバージョンを管理します
具体的な参考:http://ruby-china.org/wiki/rbenv-guide
インストール1.
git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
# ruby
git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
# gemset, , bundler
git clone git://github.com/jamis/rbenv-gemset.git ~/.rbenv/plugins/rbenv-gemset
# gem gem rbenv rehash ,
git clone git://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash
# rbenv update rbenv ,
git clone https://github.com/rkh/rbenv-update.git ~/.rbenv/plugins/rbenv-update
次のコードを
~/.bash_profile
に入れますexport PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
実行:source~/.bash_profile
インストール2.
curl https://raw.github.com/fesplugas/rbenv-installer/master/bin/rbenv-installer | bash
https://github.com/fesplugas/rbenv-installer
使用
rbenv install --list # ruby
rbenv install 1.9.3-p484 # 1.9.3-p392
rbenv versions #
rbenv version #
rbenv global 1.9.3-p484 # 1.9.3-p392
rbenv shell 1.9.3-p484 # shell 1.9.3-p392, `RBENV_VERSION`
benv local 1.9.3-p484 # jruby-1.7.3, `.rbenv-version`
rbenv rehash # ruby bundle install
rbenv which irb # irb
rbenv whence irb # irb
gem install bundler
bundle gem