2013年2月2日土曜日

centOSにrailsのインストール

いつもこの設定をするのに時間がかかるので、メモしておきます

centOSにrails,passengerのインストール手順(前提条件としてはアッパチはインストールしている)
1.インストール いろいろインストールしておかないとpassengerをインストールすときにエラーがでる。(多分この程度でいけると思う)
# yum -y install  readline-devel.x86_64
# yum -y install  zlib-devel.x86_64
# yum -y install sqlite-devel
# yum -y install curl 
# yum -y install curl-devel 
# yum -y install openssl-devel
# yum -y install httpd-devel openssl openssl-devel apr-devel 
2.rubyのインストール
# bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )
# source /etc/profile.d/rvm.sh
//一応1.9.3をインストール
# rvm install 1.9.3
# gem install rails
# gem install passenger
# passenger-install-apache2-module
  途中に出てくるLoadModule.....をメモしておく
3.railsプロジェクトをサーバーにコピー
3.1Gemfile のtherubyracer のコメントを外す
3.2/var/www/railsにプロジェクトをコピー
   例:storeの場合  /var/www/rails/store 
3.2シンボリックリンクを張る
   例:storeの場合
   cd /var/www/html/rails  
   ln -s /var/www/rails/store/public store
4.http設定ファイルの追加
/etc/httpd/conf.d/rails.confを作成
  *3でメモした物を貼付ける
  *RailsBaseURIをセットする
  例:storeの場合
    
     LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p374/gems/passenger-3.0.19/ext/apache2/mod_passenger.so
     PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p374/gems/passenger-3.0.19
     PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p374/ruby

     RailsBaseURI /rails/sotre
     
     注意:LoadModule以降の内容は環境によって違います。
5.コンパイル
bundle install
rake db:migrate RAILS_ENV=production
rake assets:precompile
6.SSL証明書作成
# cd /etc/pki/tls/certs 
# make server.key 
umask 77 ; \
/usr/bin/openssl genrsa -aes128 2048 > server.key
Generating RSA private key, 2048 bit long modulus
......................................................++++++
.............++++++
e is 61251 (0x10001)
Enter pass phrase:# パスフレーズ設定
Verifying - Enter pass phrase:# 再入力
# 秘密鍵からパスフレーズを削除
# openssl rsa -in server.key -out server.key 
Enter pass phrase for server.key:# パスフレーズ入力
writing RSA key
#
# make server.csr 
umask 77 ; \
/usr/bin/openssl req -utf8 -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP# 国
State or Province Name (full name) [e]:OSAKA   # 地域(県)
Locality Name (eg, city) [Default City]:OSAKA# 都市
Organization Name (eg, company) [Default Company Ltd]:ABC   # 組織名
Organizational Unit Name (eg, section) []:develop   # 組織の部門名
Common Name (eg, your server's hostname) []:www.hillclimb.com   # サーバーのFQDN
Email Address []:xxx@hillclimb.com# 管理者アドレス
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:# 空Enter
An optional company name []:# 空Enter
#
# openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650 # 有効期限が10年の自己署名証明書を作成
Signature ok
subject=/C=JP/ST=Hiroshima/L=Hiroshima/O=GTS/OU=Server World/CN=www.hillclimb.com/emailAddress=xxx@hillclimb.com Getting Private key
# chmod 400 server.*

//これをしないとアパッチ起動時にパワードを聞かれる
# cp -p server.key server.key.org
# openssl rsa -in server.key.org -out server.key
7.ssl インストールと設定
# yum -y install mod_ssl
# vi /etc/httpd/conf.d/ssl.conf
# 77行目:行頭の#を削除
DocumentRoot "/var/www/html"
# 78行目:#を削除しサーバー名指定
ServerName www.server.world:443
# 105行目:証明書指定
SSLCertificateFile /etc/pki/tls/certs/server.crt
# 112行目:鍵ファイル指定
SSLCertificateKeyFile /etc/pki/tls/certs/server.key

8.ファイヤーウオールで443を開ける
9.アパッチの再起動
10.アクセス  https://www.hillclimb.com/rails/store
  このときにpassengerでエラーが出る事があります。そのときはアパッチのログやrailsプロジェクトのログをみれば大抵何が悪いかわかります。それでもわからない時はdevelopmentの設定を使って起動してみてください。多分問題は無く起動します。そこでどの設定が関係しているかを順番に潰していく方法かな。。

0 件のコメント:

コメントを投稿