Ruby on Rails×Google

ブログ - 最新エントリー

▼rails 2.3.5
~/local/src> gem install -v=2.3.5 rails
~/ror_app> rails _2.3.5_ adbook -d mysql
rake rails:update:generate_dispatchers
chmod 755 dispatch.fcgi
chmod 755 dispatch.cgi
chmod 755 dispatch.rb

▼rails 2.2.3
~/local/src> gem install -v=2.2.3 rails
~/ror_app> rails _2.2.3_ adbook -d mysql


とりあえず、動くようになった。
死ぬほど疲れたので、ちょっと休んでから、躓いた点などをメモしていきたい。あー、でも、根本的な原因とかよく分かってなく、かつ色々試した内のどれかが有効だったというレベルです…。ハイ。

結局、バージョンも落としまくりで、
最終的には、
rails 2.2.3
ruby 1.8.5
gem 1.3.6
です。

あー、でも、今気がついたけど、何でまたrubyが、1.8.5に戻ってんだ?
1.8.7ぐらいにさっき上げたのを確認したのに…。

source ~/.bashrc

ってやれば、また1.8.7に上がるのかなァ?

そいで、また、動かなくなるとか…。

……もうヤだ、rails…。
  • コメント (0)
  • トラックバック (0)
  • 閲覧 (6)
未解決です。
railsアプリとか、全然動いてないし―。

しかも、なにやってるか段々分からなくなってきたので、一旦メモ。
分からないこと多過ぎ。

CakePHPが、割合簡単にレンタルサーバーで動いたので、じゃあ、Railsもって思ったのが運の尽きか―。

プログラムが分からない人←自分は、レンタルサーバーでRailsを動かそうとか思わないほうがよいと思われ。

未だに、この問題に取り組んでいるのは、単に、
これまでかけた時間を無駄にしたくないから―。

意地とか、そんな次元とっくに超えてるしー。
アルコールの力借りて乗りきろー、かとも思ったけど、
もはや体調悪くなって、これ以上、飲めない、とか、何かそんな感じ―。

一番初めに参考にしたのは、ここ。
▽its55 lab ? coreserverにRuby on Rails 2.1.0をインストールしてみた
  http://www.lab.its55.com/?p=54

問題は、このページに掲載されたバージョンのとおりにやらなかったこと。より、正確には、ここで書かれたとおりのコマンドを打っても、実際には最新のバージョンがインストールされてしまうことが問題の一因だった(と思う。詳細は不明。問題とか、全然まだ解決していないので―)。
今、思えば、大人しくRuby on Rails 2.1.0をインストールしとけばよかったのだけど、生意気にも、なるべく新しいヤツ入れてみよーね、とか思ったのも、よくなかった(ような気がする)。

Railsは、現在進行しまくり形のプロジェクトなので、とにかく頻繁にバージョンアップし倒す。バージョンアップするのはよいのだが、前バージョンとの互換性が(多分だけど、)なかったりすることもあり、色々変更点が多くて、プログラムが分からない人←自分にとっては、とってもついていけない(というか、初めからよく理解できていないのだが―)。

その端的な例が、コレ!
このとき悩んでいたのは、
Welcome aboardの「About your application’s environment」をクリックすると、404 NOT FOUND となる現象。

ちなみに、その時の、環境は、
>gem -v
1.3.7
>ruby -v
ruby 1.9.1p378 (2010-01-10 revision 26273) [i686-linux]
>rails -v
Rails 2.3.8
というもの。

まず、一番初めに気になったのが、このエントリー。
>RoR2.3.xではcgiによる動作を考慮していない様です。
  Logwatch for santa » Linux
 http://blog.santalinux.net/?cat=5
え? マジで? cgiが使えなかったら、予めインストールされていないレンタルサーバーじゃあ使えないじゃん!


調べてみたら、違った。正しくは、
>rails2.3以上ではfcgi系のファイルが自動生成されません
ということらしい。
  ▽Gfdnavi を apache2 + FastCGI で動かす
 http://www.gfd-dennou.org/arch/davis/gfdnavi/doc/install/gfdnavi-with-apache2-fastcgi.htm
  自動生成されないってことは、手動生成させれば、O.K.ってこと?
 
>rake rails:update:generate_dispatchers
を試したところ、ついに、念願だった404エラーが解消された。

だけど、404エラーが解消されて、すぐサンプルが動けばよいのだが、
そんな簡単にいけば誰も苦労しねーんだよ! 状態。

で、現在、新たなエラーへ取り組んでいる最中(取り組んで、と言ったって、単にググっているだけなのだが―)。


Welcome aboard
You’re riding Ruby on Rails!
About your application’s environment
CGIWrap Error: Execution of this script not permitted

Execution of (プロジェクトディレクトリ名/dispatch.cgi) is not permitted for the following reason:

Script is not executable. Issue 'chmod 755 filename'

Server Data:

Server Administrator/Contact: メールアドレス
Server Name: ドメイン名
Server Port: 80
Server Protocol: HTTP/1.1

Request Data:

User Agent/Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8
Request Method: GET
Remote Address:
Remote Port:
Referring Page: ドメイン名/プロジェクトディレクトリ名/

Getting started


なんだこれ?
パーミッションのエラーか?
dispatch.cgiのパーミッションを755にしろってこと?
だけど、dispatch.cgiがどこにあるか分からず。
探したらあった。
プロジェクトディレクトリ名/publicの直下にあった。
755に変更。

Welcome aboardを見る。
エラーメッセージに変化なし。
再びぐぐる。

>dispatch.fcgiを作る。というエントリーを見つけた。
▽RedmineをDreamhostで動かしてみる | Katawara.*
  http://www.katawara.com/2007/12/redmine/
>1.chmod 755 dispatch.fcgi
>2.chmod 755 dispatch.cgi
>3.chmod 755 dispatch.rb
とある。早速試す。

イケた。
エラーメッセージが変わった。

Missing the Rails 2.3.8 gem. Please `gem install -v=2.3.8 rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.
なんだこれ?
Rails 2.3.8 gemがないから、入れろってこと?
よく分からないが、コマンドが書いてあるから、素直にやってみる。
~/local/src> gem install -v=2.3.8 rails
Successfully installed rails-2.3.8
1 gem installed

Welcome aboardを見る。
エラーメッセージに変化なし。

試しに、rubygemsを最新版にアップデートしてみる。
~/local/src> update_rubygems
RubyGems 1.3.7 installed

これ以上、上がらないのか。
とにかく、再度、Welcome aboardを見る。
エラーメッセージに変化なし。

一体、オレのgemってどうなってんだよ?
~/local/src> gem list
*** LOCAL GEMS ***
actionmailer (2.3.8, 2.3.5)
actionpack (2.3.8, 2.3.5)
activerecord (2.3.8, 2.3.5)
activeresource (2.3.8, 2.3.5)
activesupport (2.3.8, 2.3.5)
cgi_multipart_eof_fix (2.5.0)
daemons (1.1.0)
fastthread (1.0.7)
gem_plugin (0.2.3)
mysql (2.8.1)
rack (1.1.0, 1.0.1)
rails (2.3.8, 2.3.5)
rake (0.8.7)
rubygems-update (1.3.7)
sqlite3-ruby (1.2.4)

なんか、アレだな。2.3.8 と 2.3.5 と二つあるのがマズいような気がしてきた。バージョン指定のアンインストールって、どうやってやるんだっけ?
再びぐぐる。
あるバージョン以上のバージョンをインストールというエントリーを見つけた。
  ▽Ruby/Rubygems使い方まとめ - 俺の基地
  http://yakinikunotare.boo.jp/orebase/index.php?Ruby%2FRubygems%BB%C8%A4%A4%CA%FD%A4%DE%A4%C8%A4%E1#k6fe0812
 このページを参考に、下記実行。
~/local/src> gem uninstall rails --version "< 2.3.7"
Successfully uninstalled rails-2.3.5

どうやらイケるようだ。
再度、Welcome aboardを見る。
エラーメッセージが変わった。

-2.3.8/lib/active_support/whiny_nil.rb:52:in `method_missing': undefined method `env_table' for nil:NilClass (NoMethodError) from /virtual/ユーザー名/local/lib/ruby/gems/gems/actionpack-2.3.8/lib/action_controller/cgi_process.rb:22:in `__send__' from /virtual/ユーザー名/local/lib/ruby/gems/gems/actionpack-2.3.8/lib/action_controller/cgi_process.rb:22:in `dispatch_cgi' from /virtual/ユーザー名/local/lib/ruby/gems/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:101:in `dispatch_cgi' from /virtual/ユーザー名/local/lib/ruby/gems/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:27:in `dispatch' from /virtual/ユーザー名/public_html/ドメイン名/プロジェクトディレクトリ名/dispatch.cgi:10

エラーでググッたところ、似たような症状のエントリーを発見。
 ▽さくらインターネット(スタンダード)にRoR環境構築 - やぶろぐ
  http://d.hatena.ne.jp/hellon999/20100612
早速、試す。
/プロジェクトディレクトリ名/public> ruby dispatch.cgi
/virtual/ユーザー名/local/lib/ruby/gems/gems/activesupport-2.3.8/lib/active_support/whiny_nil.rb:52:in `method_missing': undefined method `env_table' for nil:NilClass (NoMethodError)
from /virtual/ユーザー名/local/lib/ruby/gems/gems/actionpack-2.3.8/lib/action_controller/cgi_process.rb:22:in `dispatch_cgi'
from /virtual/ユーザー名/local/lib/ruby/gems/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:101:in `dispatch_cgi'
from /virtual/ユーザー名/local/lib/ruby/gems/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:27:in `dispatch'
from dispatch.cgi:10:in `
'

どうやら、AddHandler cgi-script-debug .cgi
というのは、 public> ruby dispatch.cgi を元に、さらにちょっとしたデバッグ機能を(多分)つけたものらしい。


require 'rubygems'でfalse
▽さくらレンタルサーバにruby,gemをインストールする: Programming myself
  http://fromsummer.seesaa.net/article/144180373.html
~> irb
irb(main):001:0> require 'rubygems'
=> false
irb(main):002:0> require 'activesupport'
DEPRECATION WARNING: require "activesupport" is deprecated and will be removed in Rails 3. Use require "active_support" instead. (called from at /virtual/ユーザー名/local/lib/ruby/gems/gems/activesupport-2.3.8/lib/activesupport.rb:2)
=> true
require 'rubygems'でfalseってどうゆこと? 前やったときは、両方trueだったのに―。

で、どこかのページに掲載されていたgem envを試したてみたのだが、今後は見方が分からない。
~> gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.7
- RUBY VERSION: 1.9.1 (2010-01-10 patchlevel 378) [i686-linux]
- INSTALLATION DIRECTORY: /virtual/ユーザー名/local/lib/ruby/gems
- RUBY EXECUTABLE: /virtual/ユーザー名/local/bin/ruby
- EXECUTABLE DIRECTORY: /virtual/ユーザー名/local/lib/ruby/gems/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /virtual/ユーザー名/local/lib/ruby/gems
- /virtual/ユーザー名/.gem/ruby/1.9.1
- /virtual/ユーザー名/local/lib/ruby/gems/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/

とりあえず喉が渇いたから、ビールでも買ってこようかな―。


>RubyGems が false を返すのはよくあることだし、心配することなんかないよ
 ▽require 'rubygems' #=&gt; false - make world
  http://d.hatena.ne.jp/littlebuddha/20081210/1228921292
 本当か? まあ、でも、そう書いてるから、そう信じとくか…。よく分からんし…。

>railsのdispath.cgiでNilになる件がよくわからない・・・
  ▽2010-03-08 - Life is Really Short, Have Your Life!!
 http://d.hatena.ne.jp/aroundthedistance/20100308

>Rails 2.3.2のCGIハンドラが動かない。バグっぽい。
  ▽Thinking of...: railsの検索結果
 http://myst3m.blogspot.com/search?q=rails

  【Ruby】Ruby on Rails Part9
>RailsのCGIでの起動プロセスに問題があるように見えました
 http://pc11.2ch.net/test/read.cgi/php/1266563593/70
>Dispatcher.dispatch(CGI.new) あたりに直してはどうかと想像
  http://pc11.2ch.net/test/read.cgi/php/1266563593/71
>さっそく試してみたところ、エラーの部分は通るようになったのですが今度は別のところでコケてしまいました。
  http://pc11.2ch.net/test/read.cgi/php/1266563593/73
>action_controller/dispatcher.rbのdef dispatchの上に書いてある# DEPRECATE: Remove CGI support
  http://pc11.2ch.net/test/read.cgi/php/1266563593/74
>すでに非推奨になってたかと思う。Railsアジャイル本でも「CGIいまどき何いってんのハァ?」って感じだったと思う
  http://pc11.2ch.net/test/read.cgi/php/1266563593/77
 

下記を参考に、fcgiを入れてみたけど、エラーメッセージに変更なし
 ▽ XREAで、RAILSをfastcgiで動かす。2.3.5
  http://playtoto.blog55.fc2.com/blog-entry-211.html
  ▽さくらサーバーでRailsを高速に動作させる方法 - cimada-ism
 http://d.hatena.ne.jp/cimadai/20080923/RubyonRails_on_sakura


で、結局、未解決。ダメじゃん!→オレ


ちなみに、一番初めに質問してみた内容がこれ。
結局、誰からも回答こなかったけど…。

railsサンプルがレンタルサーバーで動作しません。どこを見ればよいでしょうか?

困り度:
暇なときに回答をください

下記を参考にしています。
▽its55 lab ? coreserverにRuby on Rails 2.1.0をインストールしてみた
  http://www.lab.its55.com/?p=54

ファイル名・ファイル構成等も参考サイトと同一にしています。
また、試しているバージョン及びサーバについては、下記のとおりです。
gem -v 1.3.5
ruby -v ruby 1.8.5
rails -v Rail 2.3.8
サーバ CORESERVER

現在、ln -s ~/ror_app/adbook/public/ adbook
とシンボリックリンクを張ったところまで進んだのですが、
ブラウザ画面でrailsの画面の[About your application’s environment]をクリックすると、404 Not Found となってしまいます。
(シンボリック自体の作成は、FFFTPでも確認しました)

AddHandler cgi-script-debug .cgiの方を有効にしても、
状況は変わりません。ちなみに、[About your application’s environment]のリンク先は、http://www.xxxx.com/adbook/rails/info/propertiesとなています。

scaffoldで作成したこのadbookを、何とかブラウザ上で動作させたいのですが、どこら辺を見ていけばよいでしょうか?

~/プロジェクトディレクトリ名> ruby script/about
About your application's environment
Ruby version 1.8.5 (i686-linux)
RubyGems version 1.3.5
Rack version 1.1
Rails version 2.3.8
Active Record version 2.3.8
Active Resource version 2.3.8
Action Mailer version 2.3.8
Active Support version 2.3.8
Application root /virtual/ユーザー名/プロジェクトディレクトリ名
Environment development
Database adapter mysql
Database schema version 20100811200136
  • コメント (0)
  • トラックバック (0)
  • 閲覧 (5)
▼自宅サーバー設定
・まず、railsではなくhtmlを公開させるように設定
・1.ディレクトリ毎/2.ユーザー毎

▼ドメイン取得
・無料サブドメイン取得
・1.dyndns/2.No-IP
  • コメント (0)
  • トラックバック (0)
  • 閲覧 (470)

「自宅サーバでrailsサンプルを動かしたい」5

カテゴリ : 
Rails » 公開
執筆 : 
e1blue 2008-6-17 9:51
■.今回のミッション……公開しているrailsサンプル(ドメイン1、2)に引き続き新たな「rails×SQLite3サンプル」(ドメイン3)を公開したい


■.結論……HOSTSファイルの設定が必要


■.手順
▼1.世界的無料転送URLサービス(リダイレクションサービス)Good.toで、無料ドメイン取得。
http://good.to/
※XREAのサブドメイン取得後に、自宅サーバ公開用として設定するやり方は不明。問い合わせたところサポート対象外との回答
※dyndnsは取得済。無料は1ドメインのみ。
※NO.IPも取得済。無料は1ドメインのみ。
※DotTkは取得設定後、ブラウザ上の表示確認まで終えたが、Yahoo!登録時に「入力されたURLにアクセスできません」とエラーメッセージが出現し登録完了することが出来ないため、止むを得ず使用を見送る。理由は不明

▼2.「rails×SQLite3サンプル」enqueteが、ローカル(Windows×rails1.2)で正常に動作することを確認

▼3.サーバ(Fedora7×rails2.0)var/www/html/enqueteへ移動

▼4.HOSTSファイルの設定
該当サイトへローカルマシンから名前解決の接続を行うために、hostsファイルを開き、下記記述を追加
▽変更対象ファイルhosts(拡張子なし)の場所
C:\WINDOWS\system32\drivers\etc\hosts
▽追加記述内容
サーバIPアドレス ドメイン3

▼5.ドキュメントルートの追加……etc/httpd/conf/httpd.conf
<VirtualHost *:80>
ServerName ドメイン3
DocumentRoot /var/www/html/enquete/public
</VirtualHost>

▼6.ブラウザで確認(http://ドメイン3/)……403エラー
SELinuxをPermissiveへ変更すると、正常に表示されることを確認
▽システム-管理-SELinux Management
・System Default Enforcing Mode……Enforcing→Permissive
・Current Enforcing Mode……Enforcing→Permissive

▼7.該当ディレクトリ(enquete)以下のタイプラベルを確認
・該当ディレクトリ(enquete)のプロパティを開きアクセス権タブをクリック。
下に表示されているSELinux Contextが、「Read from all httpd scripts and the daemon」を選択していないこと、また、プルダウンメニューの中に、この項目自体がないことを確認。
ディレクトリにSELinuxのタイプラベルが割り当てられていない。
・通常、SELinuxはディレクトリやファイルに「タイプ」と呼ばれるラベルを割り当てて管理している。このラベルがないとapacheはディレクトリやファイルにアクセスできない。
(新しくディレクトリを作成すると、その親ディレクトリからポリシーを継承するルールとなっている)

▼8.該当ディレクトリ(enquete)以下のタイプラベルを初期化し、タイプラベルの付け直しを行う
[root@]# getenforce //現在のモードをみる
Enforcing
[root@]# restorecon -R /var/www/html/enquete //特定のディレクトリタイプの変更をする。-R はrecursive
[root@]# cd /var/www/html/enquete //カレントディレクトリを移動
[root@]# ls -Z //タイプをlsコマンドの「-Z」オプションで閲覧
[root@]# chcon system_u:object_r:httpd_sys_content_t /var/www/html/enquete -R
[root@]# chmod 711 /var/www/html/enquete
[root@]# ls -Z //該当ディレクトリが、下記状態となっていることを確認
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t enquete
▼GUIでも確認
▽該当ディレクトリ選択後、ツールバー表示を選択し、再読み込み(R)をクリック
▽該当ディレクトリ(enquete)のプロパティを開きアクセス権タブをクリック
・所有者:root
・フォルダのアクセス権:作成と削除
・ファイルのアクセス権:---
・グループ:root
・フォルダのアクセス権:いいえ一覧,いいえ作成/削除,アクセス
・ファイルのアクセス権:---
・その他
・フォルダのアクセス権:いいえ一覧,いいえ作成/削除,アクセス
・ファイルのアクセス権:---
・実行:-
・SELinux Context:Read from all httpd scripts and the daemon


●参考
モードの切り替え
# setenforce 0  // Permissiveモードになる
# setenforce 1  // enforcingモードになる

※なお、該当フォルダの表示を再読み込みしなければ、「Read from all httpd scripts and the daemon」を選択することが出来ない。


■今後の課題
1.MySQLと対応したrailsサンプルを動かす

2.rails1.2系のサンプルを2.0系へとカスタマイズして公開

3.railsサンプル(ドメイン1・2・3)以外のドキュメントルートの確保(以前は動作していたMovableTypeの確認など)

4.サブバージョンの導入……Samba経由ではなく、サーバへコミット出来るような設定を行う


■参考url
▼HOSTSファイルの設定 - Windows関連 - 自宅サーバーでやってみよう!!
http://vine-linux.ddo.jp/windows/hosts.php

▼バーチャルホストの設定- Apacheの設定 - 自宅サーバーの構築 - 自宅サーバーでやってみよう!!
http://vine-linux.ddo.jp/linux/apache/virtualhost.php

「自宅サーバーでrailsサンプルを動かしたい」4

カテゴリ : 
Rails » 公開
執筆 : 
e1blue 2008-6-16 14:41
■.今回のミッション……公開している「htmlオンリーのサンプル(ドメイン2)」samplebbsを、「rails×SQLite3サンプル」articleと入れ替える

1.「rails×SQLite3サンプル」articleが、ローカル(Windows×rails1.2)で正常に動作することを確認

2.サーバ(Fedora7×rails2.0)var/www/html/articleへ移動

3.ブラウザで動作確認(http://ドメイン2/articles)……SQLiteがないとのエラー表示

4.SQLiteインストール
▽4-1……SQLiteのgemを探す
gem list --remote sqlite
▽4-2……SQLite3-rubyをインストール
gem install sqlite3-ruby

4.ブラウザで再度確認(http://ドメイン2/articles)……エラー

5.ドキュメントルートの変更……etc/httpd/conf/httpd.conf
ディレクトリ名変更
DocumentRoot /var/www/html/samplebbs/public→ /var/www/html/article/public

6.ブラウザで再度確認(http://ドメイン2/articles)……エラー

7.SELinuxの切り替え
[root@]# getenforce //現在のモードをみる
Enforcing
[root@]# restorecon -R /var/www/html/article //特定のディレクトリタイプの変更をする。-R はrecursive
[root@]# ls -Z //タイプをlsコマンドの「-Z」オプションで閲覧
[root@]# chcon system_u:object_r:httpd_sys_content_t /var/www/html/article -R

8.ブラウザで再度確認(http://ドメイン2/articles)……O.K.


■今後の課題
1.MySQLと対応したrailsサンプルを動かす

2.rails1.2系のサンプルを2.0系へとカスタマイズして公開

3.rails2系統以外のドキュメントルートの確保(以前は動作していたMovableTypeの確認など)


■参考url
▼Ruby on Railsインストールメモ - rubyco(るびこ)の日記
http://d.hatena.ne.jp/rubyco/20070530/ror

(1) 2 »

Amazon
ブログ/カテゴリ一覧
ブログ/最新のエントリ