rbenv + rbenv-gemset + apache + passenger를 Mac에 넣기
rbenv, ruby-build, rbenv-gemset 설치
Homebrew 을 사용하여 rbenv 환경을 구축합니다.
도중에 의존관계 등으로 에러가 나왔을 경우는, 매번 대처해 주세요.
bash
~ lassy423$ brew install rbenv ruby-build rbenv-gemset
==> Downloading https://github.com/sstephenson/rbenv/archive/v0.4.0.tar.gz
######################################################################## 100.0%
==> Caveats
To use Homebrew's directories rather than ~/.rbenv add to your profile:
export RBENV_ROOT=/usr/local/var/rbenv
To enable shims and autocompletion add to your profile:
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
==> Summary
? /usr/local/Cellar/rbenv/0.4.0: 31 files, 152K, built in 3 seconds
==> Downloading https://github.com/sstephenson/ruby-build/archive/v20140225.tar.gz
######################################################################## 100.0%
==> ./install.sh
? /usr/local/Cellar/ruby-build/20140225: 114 files, 496K, built in 4 seconds
==> Downloading https://github.com/jf/rbenv-gemset/archive/v0.5.6.tar.gz
######################################################################## 100.0%
? /usr/local/Cellar/rbenv-gemset/0.5.6: 12 files, 52K, built in 3 seconds
~ lassy423$
~/.bashrc 와 ~/.profile 에 추가
~/.bashrc
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
~/.profile
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
추가한 내용을 다시 로드합니다.
bash
~ lassy423$ source ~/.profile
루비 설치
모든 버전의 루비를 설치합니다. 예로 2.1.1을 사용합니다.
bash
~ lassy423$ rbenv install --list
Available versions:
1.8.6-p383
1.8.6-p420
1.8.7-p249
(中略)
2.1.0-rc1
2.1.1
2.2.0-dev
(中略)
ree-1.8.7-2012.01
ree-1.8.7-2012.02
topaz-dev
~ lassy423$ rbenv install 2.1.1
Downloading ruby-2.1.1.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/e57fdbb8ed56e70c43f39c79da1654b2
Installing ruby-2.1.1...
Installed ruby-2.1.1 to /Users/Yoshihiko/.rbenv/versions/2.1.1
~ lassy423$ rbenv rehash
~ lassy423$ rbenv versions
* system (set by /Users/Yoshihiko/.rbenv/version)
2.1.1
~ lassy423$ rbenv global 2.1.1
~ lassy423$ rbenv versions
system
* 2.1.1 (set by /Users/Yoshihiko/.rbenv/version)
~ lassy423$
gemset 만들기
rbenv-gemset을 사용하여 응용 프로그램 별 gemset을 만듭니다.
bash
~ lassy423$ rbenv gemset
version 0.5.6
rbenv-gemset [command] [options]
possible commands are:
active
create [version] [gemset]
delete [version] [gemset]
file
init [gemset]
list
version
For full documentation, see: https://github.com/jf/rbenv-gemset#readme
~ lassy423$ rbenv gemset list
~ lassy423$ rbenv gemset create 2.1.1 demosite-gemset
created demosite-gemset for 2.1.1
~ lassy423$ rbenv gemset list
2.1.1:
demosite-gemset
~ lassy423$
만든 gemset을 응용 프로그램 아래에서 사용할 수 있도록 설정합니다.
bash
~ lassy423$ cd $DEMOSITE_HOME
demosite_home lassy423$ echo demosite-gemset > .rbenv-gemsets
demosite_home lassy423$ rbenv gemset active
demosite-gemset global
demosite_home lassy423$
gems 설치
이번에는 기존 Rails 앱을 실행하고 싶으므로 먼저 bundler 만 설치합니다.
bash
demosite_home lassy423$ gem install bundler
Fetching: bundler-1.6.1.gem (100%)
Successfully installed bundler-1.6.1
1 gem installed
demosite_home lassy423$
그런 다음
bundle
명령으로 다른 gems를 설치합니다.bash
demosite_home lassy423$ bundle install
Fetching gem metadata from https://rubygems.org/...........
Fetching additional metadata from https://rubygems.org/..
Resolving dependencies...
(中略)
= 1.8.7 : gem install rdoc-data; rdoc-data --install
= 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!
demosite_home lassy423$
마지막으로 설치한 gems를 활성화합니다.
bash
demosite_home lassy423$ rbenv rehash
이 시점에서 Rails 애플리케이션 단독으로 동작하게 됩니다.
rails s
를 실행하여 제대로 작동하지 않는 경우 해결하십시오.passenger 설치
apache는 이미 들어 있다고 가정하고 이야기를 진행하지만,
포함되어 있지 않으면
brew info httpd
로 설치하십시오.중간에
rbenv rehash
를 잊지 마십시오.bash
demosite_home lassy423$ gem install passenger
Fetching: daemon_controller-1.2.0.gem (100%)
Successfully installed daemon_controller-1.2.0
Fetching: passenger-4.0.40.gem (100%)
Building native extensions. This could take a while...
Successfully installed passenger-4.0.40
2 gems installed
demosite_home lassy423$ rbenv rehash
demosite_home lassy423$ passenger-install-apache2-module
Welcome to the Phusion Passenger Apache 2 module installer, v4.0.40.
(中略)
Please edit your Apache configuration file, and add these lines:
LoadModule passenger_module /Users/lassy423/.rbenv/versions/2.1.1/gemsets/demosite-gemset/gems/passenger-4.0.40/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /Users/lassy423/.rbenv/versions/2.1.1/gemsets/demosite-gemset/gems/passenger-4.0.40
PassengerDefaultRuby /Users/lassy423/.rbenv/versions/2.1.1/bin/ruby
</IfModule>
After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!
Press ENTER to continue.
도중에 apache 설정이 표시되므로 복사해 둡니다.
apache 설정 수정(실패 패턴)
passenger 설치 중에 표시되는 apache 설정을 추가합니다.
/usr/local/etc/apache2/httpd.conf
LoadModule passenger_module /Users/lassy423/.rbenv/versions/2.1.1/gemsets/demosite-gemset/gems/passenger-4.0.40/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /Users/lassy423/.rbenv/versions/2.1.1/gemsets/demosite-gemset/gems/passenger-4.0.40
PassengerDefaultRuby /Users/lassy423/.rbenv/versions/2.1.1/bin/ruby
</IfModule>
RailsEnv development
<VirtualHost *:80>
ServerName somedomain.com
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /Users/lassy423/demosite/public
<Directory "/Users/lassy423/demosite/public">
# This relaxes Apache security settings.
AllowOverride none
# MultiViews must be turned off.
Options -MultiViews
Allow from all
</Directory>
</VirtualHost>
sudo apachectl start
에서 apache를 시작하고,브라우저로 접속하면 아래와 같은 에러 화면이 표시됩니다.
(표시되지 않는 경우는 구축은 종료입니다)
apache 설정 수정(성공 패턴)
Stack Overflow 을 참고로 다음 설정을 추가합니다.
/usr/local/etc/apache2/httpd.conf
SetEnv GEM_HOME /Users/lassy423/.rbenv/versions/2.1.1/gemsets/demosite-gemset/
최종 설정은 다음과 같습니다.
/usr/local/etc/apache2/httpd.conf
LoadModule passenger_module /Users/lassy423/.rbenv/versions/2.1.1/gemsets/demosite-gemset/gems/passenger-4.0.40/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /Users/lassy423/.rbenv/versions/2.1.1/gemsets/demosite-gemset/gems/passenger-4.0.40
PassengerDefaultRuby /Users/lassy423/.rbenv/versions/2.1.1/bin/ruby
</IfModule>
RailsEnv development
<VirtualHost *:80>
ServerName somedomain.com
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /Users/lassy423/demosite/public
SetEnv GEM_HOME /Users/lassy423/.rbenv/versions/2.1.1/gemsets/demosite-gemset/
<Directory "/Users/lassy423/demosite/public">
# This relaxes Apache security settings.
AllowOverride none
# MultiViews must be turned off.
Options -MultiViews
Allow from all
</Directory>
</VirtualHost>
참고
Reference
이 문제에 관하여(rbenv + rbenv-gemset + apache + passenger를 Mac에 넣기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/lassy/items/71552317fa6ef0a0c28d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)