Ruby on Rails 4 アプリケーションプログラミング 新品価格 |
webrickならチョロゲーなんだけど
apache上でrails動かすのでドハマリして1日かかった。
そんなわけで備忘録
やり方
・マスタカの環境
mac 10.9.3
ruby 2.0.0p481
rails-4.0.3
・apache上でrails動かすには
passengerを入れる必要がある
gem install passenger
・passengerでapacheモジュールを入れる
sudo passenger-install-apache2-module
その後、選択肢が出るのでrailsを選ぶ
・httpd.conf
passengerのコンソールに出ていた通りに記載する
LoadModule passenger_module /opt/local/lib/ruby2.0/gems/2.0.0/gems/passenger-4.0.45/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /opt/local/lib/ruby2.0/gems/2.0.0/gems/passenger-4.0.45
PassengerDefaultRuby /opt/local/bin/ruby2.0
</IfModule>
・バーチャルホスト
/etc/apache2/users/hogehoge.confに記載
基本コピペだけど、ちょっと変えてる
Listen 8080
<irtualHost *:80>
RailsEnv development
DocumentRoot /rubyのパス/public
<Directory /railsのパス/public>
AllowOverride all
Options -MultiViews
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
・RailsEnvがエラー
sudo apachectl configtest
Invalid command 'RailsEnv', perhaps misspelled or defined by a module not included in the server configuration
(´・ェ・)なんかpassengerおかしくね
・試しに、RailsEnvをコメントアウトすると
Forbidden
You don't have permission to access / on this server.
/private/var/log/apache2/error_logには以下のエラーでる
Directory index forbidden by Options directive: /railsのパス/public/
・試しにpublicフォルダにindex.htmlおいてみた
あら不思議表示できるじゃないですか
railsとして認識してないようです
・解決策
passengerのライブラリの読み込みがおかしいので調べたら
LoadModule passenger_module等の記載は
以下に記載するのが正しいとのこと
/etc/apache2/other/passenger.conf
その後、apache再起動しましょう
sudo apachectl restart
これでrailsがapache上で動くところまで来ました。
macのパス全然分からないので、もうちょっと頭まわさないといけないな。。。
さて、vpsの契約始めるかな・・・・。
後はdeployだけか。