【Ruby】Ruby on Rails Part7
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/04/30(木) 23:07:27ID:???http://pc11.2ch.net/test/read.cgi/php/1224838013/
■参考サイト
<英語>
本家:http://www.rubyonrails.org
API document:http://api.rubyonrails.com/
開発者のblog:http://weblog.rubyonrails.org/
参考wiki:http://wiki.rubyonrails.org/rails
<日本語>
Rails' wiki: http://wiki.fdiary.net/rails/
■参考スレ(プログラム板)
Rubyについて Part 35
http://pc12.2ch.net/test/read.cgi/tech/1238194350/
Ruby 初心者スレッド Part 27
http://pc12.2ch.net/test/read.cgi/tech/1238632943/l50
0102nobodyさん
2009/05/19(火) 22:38:35ID:???プログラム初心者だと大変かもしれない。
Ruby初心者でも他の言語の経験があれば大丈夫かな。
Rubyが理解できる事が必須だけど、Railsと一緒に覚えていけばいい。
まずは環境のインストール方法が分かりやすく載っている本を買って
そのとおり進めていくほうが迷わないのでおすすめ。
本が扱っているバージョンはちょっと古いけど、そのバージョンに自分の環境を合わせる事が大切。
うっかり最新版を入れてしまうと、Railsの仕様が変わっているために迷子になってしまう。
0103nobodyさん
2009/05/19(火) 22:39:09ID:???0104nobodyさん
2009/05/19(火) 22:57:59ID:???例えばPHPならデータベースへの接続がしやすいとか、
なんとなーくこういうのに向いてるよっていう指標は無いの?
と、全くrubyを知らない俺が聞いてみる。
0105nobodyさん
2009/05/19(火) 23:18:46ID:???好みの問題という気がする。
0106nobodyさん
2009/05/20(水) 02:04:50ID:???Railsでは使えないの?
それとも使えるrailsのgemがあるの?
0107nobodyさん
2009/05/20(水) 02:19:51ID:???いうことなので、ふつうは言語不問。
ボディの内容を解釈できるかは足回り(XMLとかJSONとかなら
パーサが要るわけで)次第。
0108nobodyさん
2009/05/20(水) 02:53:06ID:???普通のAPI(どこかに落ちててWebでダウンロードできる)だと思うけど
0109nobodyさん
2009/05/20(水) 06:03:49ID:???0110nobodyさん
2009/05/20(水) 06:19:02ID:???0111nobodyさん
2009/05/20(水) 07:03:26ID:???今は何を使ったらいいの?
0112nobodyさん
2009/05/20(水) 10:18:11ID:???Rinari+emacsか
macならtextmateがオヌヌメ
0113nobodyさん
2009/05/21(木) 10:55:01ID:???from_forでf.time_selectだと:default => {:hour => }があるみたいですが、
time_selectだと上記オプションでは上手くいきません。
Controller側に設定したい時間オブジェクトがあるのでデフォルト値をそれにしたいのですが…。
0114113
2009/05/21(木) 13:29:08ID:???0115nobodyさん
2009/05/21(木) 18:30:28ID:Fhc0Zbqv・Aptana RadRails重い
・NetBeans めちゃ軽い ただし、rspec、autotest等最新版に対応してないので、小細工がいる。(動かせることは動かせる)
0116nobodyさん
2009/05/21(木) 18:34:10ID:???0118115=117
2009/05/21(木) 20:01:06ID:???今までの苦労はなんなんだよw
>>116 にはありがとうといいたい。
・NetBeans 6.7m3 Download
http://bits.netbeans.org/download/6.7/m3/
・NetBeans Nighly ダウンロード
http://bits.netbeans.org/download/trunk/nightly/latest/
0119nobodyさん
2009/05/21(木) 20:43:24ID:???0120nobodyさん
2009/05/22(金) 23:09:09ID:???ぶっ壊れるんだけど、同じ現象解決した人いないか?
file_fieldメソッドをviewに読み込んでPOSTしてるんだけど、
受け取ったファイルを試しに自作のBLOB型のカラムに
自作table.blob型のカラム = params[:file_fieldのid].read
で保存したら正しく保存されたっぽい。
rails2.3.2
attachment-fuプラグインは、:storageオプションを:db_fileにすると
db_filesテーブルに保存してくれるようだが、中を覗いてみると
バイナリがかなり欠損して、元ファイルの1/5くらいのサイズになっている・・・。
0121nobodyさん
2009/05/23(土) 01:34:50ID:???0122nobodyさん
2009/05/23(土) 07:49:36ID:???0123nobodyさん
2009/05/23(土) 09:42:19ID:???覚えるのは何ヶ月くらいかかるの?
0124nobodyさん
2009/05/23(土) 10:59:34ID:???0125nobodyさん
2009/05/23(土) 11:47:12ID:???いや、ローカルの開発サーバ…。
windowsなのが原因なのかもしれん。
とりあえずレスありがとう。
0126nobodyさん
2009/05/23(土) 15:56:37ID:???パッチ送った気がするけど、スルーされてたのか。。。
中で一時ファイルとかをFile.read(path)的に読んでるところがあったらそれをFile.open(path, "rb", &:read)に
書き換えればうまくいくのではないだろうか。
0127nobodyさん
2009/05/24(日) 01:42:02ID:xGQhsS/Xよくない例かもしれないのですが、
person.parents << parent = Parent.new
person.children << GrandParent.new(:grand_parent_id => parent.id)
person.save
みたいなことがしたいのですが、これだとChild.grand_parent_idがnilになってしまいます。
このような場合で、あるテーブルと、そのテーブルにhas_manyな関係のテーブル2つ(合計3つ)を同時にsaveするうまい方法があったら教えていただけないでしょうか??
ご教示頂けると幸いです><
0128nobodyさん
2009/05/24(日) 14:19:16ID:???少し面倒でも、トランザクションの中で1つ1つsave!するほうが確実だと思うよ。
トランザクションだから同時に保存するという要件も満たしているし。
begin
ActiveRecord::Base.transaction {
parent.save!
person.save!
children.save!
}
rescue Exception
end
0129nobodyさん
2009/05/24(日) 21:48:48ID:???例)
興味のある麺類を選んでください。
□ うどん
□ そば
□ きしめん
↑ユーザプロフィールと麺類を多対多で関連づける
最初はact_as_bitsで実装して上手く行っていたのだけど、要素の順番を保存できないのと
要素を動的に追加したいという要望がでてきてact_as_bitsでは対応できなくなったぽい
んで、代替策として多対多の関連を定義して対応することにしたんだけど、
railsのモデル更新系フォームヘルパが複数選択のチェックボックス(パラメータを配列で送る)に
対応してないじゃないですか!
仕方がないのでチェックボックスのname属性を自力で書き換えたり
モデルにチェック/非チェックを返すアクセサメソッドの定義を追加したりしたんだけど
なんだかすごいメンドクセーという次第でして
この辺を上手いこと解決できる方法やプラグインなどはないでしょうか?
要望としては、できればcheckbox_tagは使いたくないです
0130nobodyさん
2009/05/24(日) 22:03:09ID:???0131nobodyさん
2009/05/24(日) 23:13:20ID:???0132nobodyさん
2009/05/25(月) 00:14:50ID:???0133nobodyさん
2009/05/25(月) 00:44:27ID:???0134nobodyさん
2009/05/25(月) 00:54:00ID:???実物は集計する必要もない項目ですが、こっちの方がイメージしやすいかと思いまして
0136nobodyさん
2009/05/25(月) 13:45:02ID:???Windowsで動かしてみているのですが、redmine.batに以下を書いて、
ruby script/server -e production -p 2900
batを起動すると、DOS窓?が開いた状態になってしまうのですが、
これを開かないで実行しておくことはできないのでしょうか?
rubyw script/server -e production -p 2900
だと、タスクマネージャで見ているとrubywがすぐに終了してしまいます…
Portable化したいので、サービス化以外の方法で行いたいのですが…
0137136
2009/05/25(月) 14:21:47ID:???Railsスレの過去ログ見てたら解決策がありました。
バッチファイル化しなければよかったんですね…。
例えば、ショートカットを作って、
ruby script/server -e production -p 2900
を割り当てて、作業ディレクトリをredmineのものにしたら、窓ひらかずに起動できました。
ありがとうございました。
追加でお聞きしたいものなのですが、
このようにして起動した場合、タスクマネージャではプロセスruby.exeが載ってしまって、
他のRubyプロセスと区別がつかないのですが、区別を付くようにする方法ってないものでしょうか?
重いrubyアプリなどを動かした時に、redmineの方を間違って落としてしまわないかと心配です。
Ruby初心者スレの方で聞いたほうがいいのかな…。
0138nobodyさん
2009/05/25(月) 14:57:47ID:???ruby.exe を hoge.exe に別名でコピーして、
ruby script/server の代わりに、
hoge script/server とやる。
なんかダサイけど、これが一番手っ取り早い。
あるいは、Linux 版で mongrel 使っていると、
$RAILS_ROOT/log に mongrel.pid というファイルが出来るので、
その pid を kill すればいいけど、Windows でもそうなっていませんか?
0139136
2009/05/25(月) 15:46:00ID:???ありがとうございます。
おお、ruby.exeは名前変えても動くんですね!
findしてみましたけど、mongrel.pidは見つかりませんでした。logにもなかた。windowsのせいかな…
exeの名前を変えると言われて気づいたのですが、タスクマネージャのメニューから「表示」「列の選択」から、
「コマンドライン」をチェックすると、プロセス起動時に渡した引数を見ることができました。
これで見分けがつきます!
これはVistaの機能だと思うのですが、Windows XPなら Process Explorerとかを使えば同じことができるはずです。
ありがとうございます。助かりました。
て今気づいたけど、
>>136-137が実は解決していませんでした orz
窓がやはり出てしまいます。ショートカットのオプションで最小化していただけでした。
裏で動かすには、サービス化以外で何がいいんだろ…。
0140nobodyさん
2009/05/25(月) 15:48:11ID:OXJaCHfTscaffoldでモデル(member)とビューを自動で作ったのですが、
気になる点があるので質問させてください。
以下のどちらのURLでもメンバーID=1番の情報を表示できるのですが、
これはどこで定義されているのでしょうか?(showが省略できる)
http://localhost:3000/members/show/1
http://localhost:3000/members/1
members_controller.rbもroutes.rbにも見当たりませんでした。
indexとshowは特殊なアクションでrails内部で既に定義されているという
ことなのでしょうか?
(railsのバージョンは2.3.2です。)
0141nobodyさん
2009/05/25(月) 15:53:56ID:???そいつが指定されるとそうなる。
0142nobodyさん
2009/05/25(月) 15:58:47ID:OXJaCHfTすばやい返事ありがとうございます。
ちょっとmap.resourcesについて調べてみます。
0144138
2009/05/25(月) 16:14:38ID:???Rails ではなく Windows の話になるけど、
hoge.exe を ruby.exe のハードリンクとした場合、
hoge.exe を消すと ruby.exe も消されてしまわない?(WinXP)
http://www.atmarkit.co.jp/fwin2k/win2ktips/982hardlink/hardlink.html
いまやってみたら、消そうとしたら「アクセスが拒否されました」と言われて、そもそも
ハードリンクで作った hoge.exe が消せなくなった。
(再起動したら消せるかも知れないが、めんどくさくてやってない)
>>139
バッチファイルに、以下じゃダメかな?
start ruby scrit/server
0145136
2009/05/25(月) 16:30:14ID:???> バッチファイルに、以下じゃダメかな?
> start ruby scrit/server
実は、
start /B ruby scrit/server
とか
cmd.exe /k start /B ruby scrit/server
とか色々試したのですが、うまくいかず、結局、wshのjscriptを使って起動させることにしました。
----------redmine_start.js-----------
shell = WScript.CreateObject("WScript.Shell");
shell.Run("ruby.exe script/server -e production -p 3500", 0);
----------------------------------
Runに 0 を指定するとウインドウを非表示で起動してくれるみたいです。
参考:
Run メソッド
http://msdn.microsoft.com/ja-jp/library/cc364421.aspx
Windows Script Programming: バッチファイル、コンソールアプリなどを非表示で実行する。
http://scripting.cocolog-nifty.com/blog/2006/10/post_c77d.html
無事解決した模様です。ありがとうございました。
0147nobodyさん
2009/05/25(月) 18:08:00ID:???レスありがとう。まさにそんな感じだった。
バイナリデータが、一部がごそっと欠損するわけじゃなくて、
途中途中のデータが消えてスカスカになる感じ。
まさに、バイナリデータを文字として開いているような・・・。
結局、指摘の方法をやってみたけどもだめで、素直にlinuxでやることにした。
(やりかたが間違ってたら申し訳ない。)
しかし新たな問題が発生。。。
今error_message_forを使ってエラーメッセージをだしているのだけども、
attachment-fuのvalidates_as_attachmentをつかって検証すると、
添付ファイルが無いときに
Content type can't be blank
Size can't be blank
Size is not included in the list
Filename can't be blank
と上記のような、ユーザーには関係ない内部的なエラーが表示される…。
今は、controllerの添付ファイルアップロード用メソッドに、
添付ファイルがpostされなかったら@モデル名.erros.addに「添付ファイルが無い」旨の
エラーメッセージを詰めて、処理を中断するようにしてるけど・・・
このプラグイン使っている人は、ファイルが選択されずにpostされたときは 、
どこで検証して、メッセージを表示してるんだ?
0148nobodyさん
2009/05/25(月) 18:21:59ID:???> hoge.exe を消すと ruby.exe も消されてしまわない?(WinXP)
> http://www.atmarkit.co.jp/fwin2k/win2ktips/982hardlink/hardlink.html
Explorerにそういうバグがあるの?
リンク先にもそんな記述はないようだけど。
> いまやってみたら、消そうとしたら「アクセスが拒否されました」と言われて、そもそも
> ハードリンクで作った hoge.exe が消せなくなった。
そりゃhoge.exeが動いてるんじゃね?
0149138
2009/05/25(月) 18:53:30ID:???>> hoge.exe を消すと ruby.exe も消されてしまわない?(WinXP)
>> http://www.atmarkit.co.jp/fwin2k/win2ktips/982hardlink/hardlink.html
>Explorerにそういうバグがあるの?
>リンク先にもそんな記述はないようだけど。
失礼、ジャクションと勘違いしていた。
>> いまやってみたら、消そうとしたら「アクセスが拒否されました」と言われて、そもそも
>> ハードリンクで作った hoge.exe が消せなくなった。
>そりゃhoge.exeが動いてるんじゃね?
こっちについては、hoge.exe は動いていなかったが、なぜかはわからん。
Who Lock Me で調べても出てこなかったが、ファイルサイズも小さいし気にしないことにする。
0150nobodyさん
2009/05/25(月) 23:46:56ID:???0151nobodyさん
2009/05/26(火) 00:16:03ID:???報告ですが、linuxだとできますた。
自分は最近やっとこさVMとかlinuxとか動かせるようになったひよっこだが、
オープン系の人ってwindows嫌いなんだろうかw
0152nobodyさん
2009/05/26(火) 00:43:30ID:???「オープン系」はメインフレームの一社でのまるごとシステム提供に
対してUNIXやWIndowsでいろいろなメーカーのを使うことを指す用語。
嫌いというか、 Windowsに興味がない人は多い。
UNIX畑の人が優勢な世界だしね。
MacはOSXになってUNIX寄り(定義上はUNIXそのもの)になったから
まだましだが。
0153nobodyさん
2009/05/26(火) 01:01:38ID:???0154nobodyさん
2009/05/26(火) 01:21:20ID:???「Windowsしか使えない奴」なら同意してあげる
0156nobodyさん
2009/05/26(火) 07:31:40ID:???sshで全部の設定が出来る訳じゃないし、鯖用途で使われてるのは、ほぼ皆無。
まだLinuxのほうがUNIXに操作方法が近い。
CUIとrubyみたいなスクリプト系の相性の良さは異常だしな。
GUIのためにスクリプトの手間が増えるのは萎える。
0158nobodyさん
2009/05/26(火) 11:29:07ID:2daPE8kx主キーとしてそれぞれbookid, itemidが設定されています。
それぞれのモデルに
set_table_name "book"
set_primari_key "bookid"
has_many :items
set_table_name "item"
set_primari_key "itemid"
belongs_to :book
を設定しています。
script/consoleを使用して以下のようにしています。
b = Book.find(1)
b.items
ですが、b.itemsの行で以下のようなエラーが出ます。
ActiveRecord::StatementInvalid: PGError: ERROR: column item.book_id does not exist
itemテーブルのbook_idを探しているようなのですが、itemテーブルの外部キーはbookidなので
エラーが出ているようです。
railsがbookidでitemテーブルを検索するようにするためにはどうしたらよいのでしょうか?
0159nobodyさん
2009/05/26(火) 15:11:42ID:???スクリプトへの変更はすぐに反映されますか?それともサーバの再起動が必要?
0160nobodyさん
2009/05/26(火) 17:41:24ID:???0161159
2009/05/26(火) 19:04:33ID:???ありがとうございます
0162nobodyさん
2009/05/26(火) 20:00:03ID:???もし自分がはまったとき、
みんなソースをどうやって追いかけているの?
全部見ていく訳じゃないんでしょう?
0163nobodyさん
2009/05/26(火) 20:06:28ID:???0164nobodyさん
2009/05/26(火) 20:25:56ID:???0166nobodyさん
2009/05/26(火) 22:07:08ID:???定義箇所をgrepで探す。
Railsはとくに動的に定義されるメソッドが多いからそれだけじゃ
どうにもならなくなるんだが。
その場合、method_missingあたりから追うことになるな。
エラーなら、とりあえずログに出てくるバックトレースを見る。
0167nobodyさん
2009/05/26(火) 22:41:14ID:nc85Zu/kたとえば /usr/local/foo 以下が RAILS_ROOT だとして、RAILS_ROOT で mongrel 等を使って
ruby script/server で起動すると、アプリの URL は
http://myhost/ 直下になりますよね。
開発環境では、これで開発しています。
本番環境が、Passenger を使って http://myhost/foo/ 以下で運用することになりました。
Passenger 等を使うと、/*** はいくらでも httpd.conf で自由に定義できると思いますが、
アプリの view で image_tag("icon.png") とすると、
<img src="/images/icon.png">
とレンダリングされてしまい、/image ディレクトリは web サーバのトップにあることが前提となってしまいます。
Passenger 等で、http://myhost/foo/ にアプリケーションを展開した場合、
image_tag("icon.png") は、
<img src="/foo/images/icon.png"> となってくれるのでしょうか?
※Java Servlet の HttpServletRequest#getContextPath() みたいなのを内部でやってくれるのかどうか
0168nobodyさん
2009/05/26(火) 22:44:39ID:???config/environments/production.rb
config.action_controller.relative_url_root = '/foo'
とかやったらどうなる?
0169167
2009/05/26(火) 22:46:23ID:???早速レスどうもありがとうございます。
実はこれから Passenger をビルドしようとしているので、
まだ Passenger で動かしたことない。
というか image_tag() が出力する HTML タグは、
Passenger か mongrel/webrick かで、出力結果が変わるのですか?
0170158
2009/05/26(火) 22:52:37ID:2daPE8kxset_primari_key "bookid"
has_many :items, :foreign_key => :itemid
set_table_name "item"
set_primari_key "itemid"
belongs_to :book, :foreign_key => bookid
とすることでうまく動作するようになりました。
>>165さんありがとうございました。
0171nobodyさん
2009/05/26(火) 22:57:13ID:???image_tagなんかの出力は actionpackのasset_tag_helperで定義
されているが、ActionController::Base.relative_url_root の値が
頭に付く。この値は環境変数でデフォルト値を変えられるので、
呼び出すプロセスが変更すればその影響を受ける。
Passengerがそこをどうしてるかは知らないけど。
0172nobodyさん
2009/05/26(火) 23:29:44ID:???「10時15分」
とか数字で表示させたい場合
どんな手法がいいですか?
あと、一緒にカウントダウン表示も行いたいのですが。
0173nobodyさん
2009/05/27(水) 00:13:56ID:???要件によるが
というかRails関係ない
0175127
2009/05/27(水) 02:11:16ID:jIlGcikVむーんやはりそんな感じですか・・
ありがとうございましたm(_ _)m
0176167
2009/05/27(水) 03:42:10ID:???>>171 さんのそういう情報も聞きたかったでした!!
こちらの環境:
・CentOS 5.1
・Apache 2.2.3(httpd-2.2.3-22.el5.centos)
・ruby 1.8.5 (2006-08-25) [i386-linux]
# gem list
actionmailer (2.1.1)
actionpack (2.1.1)
activerecord (2.1.1)
activeresource (2.1.1)
activesupport (2.1.1)
cgi_multipart_eof_fix (2.5.0)
composite_primary_keys (1.0.10)
daemons (1.0.10)
dcov (0.2.2)
fastthread (1.0.7)
gem_plugin (0.2.3)
haml (2.0.9)
mongrel (1.1.5)
mysql (2.7)
passenger (2.2.2)
rack (0.9.1)
rails (2.1.1)
rake (0.8.4)
rcov (0.8.1.2.0)
rspec (1.1.12)
rspec-rails (1.1.12)
0177167
2009/05/27(水) 03:43:18ID:???http://redmine.jp/tech_note/apache-passenger/ にあるように
VirtualHost 形式でやってみたところ、Passenger で Rails アプリは動いた。
これは問題なし。
つぎに http://rubyist.g.hatena.ne.jp/Ubuntu/20080729/1217336403 のように、
VirtualHost を使わず、
# ln -s /usr/local/foo/public /var/www/html/foo
として、httpd.conf に以下を追記した方式で、
RailsBaseURI /foo
Rails アプリを http://myhost/foo/ でやってみた。結果としてうまく動いた。
アプリの view の中で image_tag("icon.png") とすると、
<img src="/foo/images/icon.png">
というように /foo が付加された。
また <%= @controller.request.relative_url_root %> とすると、
/foo が出力された。(*1)
ということで問題ないようです。
ちなみに >>168 にあるように、 config/environments/production.rb に
config.action_controller.relative_url_root = '/foo'
は書いていません。
production.rb をいじらなくても目的は達成できたけど、以下を追試した。
0178167
2009/05/27(水) 03:43:45ID:???production.rb に >>168 を書いて Apache を再起動し、http://myhost/foo にアクセスすると、
Rails アプリが立ち上がらない。Passenger の HTML が出て、
Ruby on Rails application could not be started
Error message:
undefined method `relative_url_root=' for ActionController::Base:Class
というのが出る。
もし書くとしたら、どう書くのが正しいのだろうか?
○追試2( >>171 を見て):
(*1) の時、view で <%= @controller.request.relative_url_root %> の代わりに以下のように書くと、
<%= ActionController::Base.request.relative_url_root %>
以下のようなエラーになった。
ActionView::TemplateError (undefined method `request' for ActionController::Base:Class) on line #?? of index/index.html.erb:
これも同じ問題かな?
0179nobodyさん
2009/05/27(水) 14:03:41ID:???素朴な疑問なのですが、
通常データベースの最初の作成って、どんな風におこなっているもんなんでしょうか?
rake db:create だと mysqlのroot ユーザみたいなあらかじめ権限あるユーザでないと作れないし、
というかdevelopmentとかtestはrootでも別にいいかって感じなんですけど(と、Railsによるアジャイル本P26にあった)、
productionの場合、さすがに root まんまってのも変だし…
結局、mysql コマンドでroot で
create database 'my_project_production' default character set utf-8;
grant all privileges on my_project_production.* to my_project@localhost identified by (パスワード)
みたいにDB作ってユーザー作成ってことをするのも、他の開発者とか、テスト環境とかで
毎回やってたらあれなんで、テキストに書いて、
myslq -u root -p < create_db.sql
みたいにやってもらう、ってことになるかと思うのですが、
その辺、スマートな方法ってないもんでしょうか?
0180nobodyさん
2009/05/27(水) 17:58:08ID:???0181nobodyさん
2009/05/27(水) 18:25:31ID:???0182nobodyさん
2009/05/27(水) 19:04:52ID:???0183nobodyさん
2009/05/27(水) 19:11:52ID:???なぜunixの権限設定の話になるの?データベースユーザの話でしょ?
ちなみにおれはマイグレーション機能を使っていない、
が元レスに対する回答かなあ
0184nobodyさん
2009/05/27(水) 19:27:27ID:???バージョンあげてもっとひどい目に遭いたくないから躊躇してしまう。
0185nobodyさん
2009/05/27(水) 20:07:31ID:???create database は、MySQL にログインして実行しているけど、
そこからさきのテーブルを作るところは、rake db:migrate でやっている。
>他の開発者とか、テスト環境とかで 毎回やってたらあれなんで、テキストに書いて、
別にあれというほどの作業でもないと思うが。
チームに人が増えたら、DB 担当者に「佐藤さんが今日から入ったので、satou スキーマを作ってあげてください」
でいいんじゃないの?
>>184
どう不安定なのか知りたい。
0186nobodyさん
2009/05/27(水) 21:25:43ID:???アパッチごと落ちるとかインターナルサーバーエラー。
落ちるのはやめてほしいが1日に1回くらいかな。
知りたいってことは安定してるの?
0187nobodyさん
2009/05/27(水) 21:33:39ID:???Passenger2.2.2使ってるけど、特にApacheが落ちるという事はないな。
環境が違えば、結果も変わると思うので、ここで聞いても仕方ないのでは?
テスト環境作って、そこで最新版のテストをしてみる事をお勧めします。
0188nobodyさん
2009/05/27(水) 22:34:45ID:???sendmsg()がEBADFで失敗するところまでは追いかけたけど、なんで失敗するのか
さっぱりわからん。
0189nobodyさん
2009/05/27(水) 23:27:55ID:???ふ〜む、サーバーのメモリが足りないのだろうか。
ちょっと開発環境でバージョンあげてテストしてみる。
mongrelの方がよかったかもと後悔中。
0190187
2009/05/28(木) 00:12:48ID:???ところで、このあたりの値ってどうしてます?
PassengerMaxInstancesPerApp
PassengerMaxRequests
自分は今このくらいで動かしてる。
PassengerMaxInstancesPerApp 8
PassengerMaxRequests 15
ちなみにサーバのメモリは4GB。
以前、PassengerMaxRequestsを設定しなかったら
passenger-statusで表示される1個あたりのProcessedが500とかになってて大変な事になってた。
アクセスが多すぎてApacheが落ちる?という事があり得るなら
PassengerMaxInstancesPerAppとPassengerMaxRequestsを調整してみるといいかも。
確証はないけど。
0191nobodyさん
2009/05/28(木) 01:17:36ID:???ありがとう。
おれの方は個人、といっても趣味ではないんだけど、
VPS(メモリ200Mくらい)を使って立ち上げた卵サービス。
パラメータは、
PassengerMaxPoolSize 2
しか設定してない。
マニュアルを見ると「2」でも少しきついかもなんだけど。
アクセスは重なっても瞬間3リクエスト/秒くらいだから、
悔しいけどアクセス過多というのはあり得ないんだよね・・・orz
mongrelの方が消費するメモリが少ないみたいだから、
これくらいの小っちゃい規模ならmongrelの方がいいのかなと思った。
0193nobodyさん
2009/05/28(木) 10:51:19ID:???NO
>>183
そです。
>>185
うん、まあそんなもんかー。それくらい手間じゃなかろう、というスタンスですか
参考になりました。サンクス
0194nobodyさん
2009/05/28(木) 11:13:37ID:???passengerかmongrelか迷うな〜。
passengerはVMにいれて動くとこまで確認したけど、いいのか悪いのか
わかんねー。
0195nobodyさん
2009/05/28(木) 13:20:08ID:???そもそも、開発者は production 運用時のパスワードとか知る必要はないんじゃね。
ウチはそこんとこ、deployスクリプトでよろしくやってる。
0196nobodyさん
2009/05/28(木) 14:52:22ID:???Processed とはどういう意味でしょうか?
こちらでは、開発チーム4人、テスト環境で passenger を使っていて、ホストしている web アプリは1つ、という状況。
ラッシュテストではなく、make/UT フェーズの後で、ブラウザをぽちぽち触っている程度。
あと httpd.conf では、おきまりの追記する 3行と、RailsBaseURI /foo しか定義していない。
----------- Domains -----------
/home/******/rails:
PID: 10322 Sessions: 0 Processed: 111 Uptime: 23m 26s
PID: 15097 Sessions: 0 Processed: 80 Uptime: 7m 33s
Core2Duo E8400、メモリ3GB、CentOS 5.1(32bit)です。
0197nobodyさん
2009/05/28(木) 15:57:18ID:???あ、すまん。もう少し詳細に。
まず、負荷を抑えるために静的ファイルにできるものは全部静的にしてるから、
そのアクセスすべてがRailsのコントローラーを通るわけじゃない作り。
Railsのコントローラーを通るリクエストは全体のうち10〜20%くらい。
瞬間3リクエスト/秒というのは1日1回あれば上等で、1日平均2000〜4000リクエストくらい。
1つ上のプランにしようか検討中(メモリが倍くらいになる)。
0198nobodyさん
2009/05/28(木) 19:46:53ID:???1つのRailsインスタンスが処理しているプロセス数だと認識している。
初期値では無制限になっているから負荷が高い時は
PassengerMaxRequests 50
など少ない数値を指定すると良いかも。
こうすると、各インスタンスのProcessedの値が最大50に制限される。
0199nobodyさん
2009/05/28(木) 21:57:11ID:???俺はとりあえずキャッシュとか一切考えないで作って、
支障でてきたらメンテナンスしようかなってくらいなんだが・・・
結構しんどそう。
0200nobodyさん
2009/05/28(木) 21:58:30ID:???0201nobodyさん
2009/05/28(木) 22:02:19ID:???■ このスレッドは過去ログ倉庫に格納されています