私はDreamhost仮想プライベートサーバ上にいます。私はSinatraアプリや他のRackアプリを書いたことは一度もありません。私はちょうど実行するHello Worldのアプリを取得しようとしているが、私はエラーで旅客のエラーページを取得しておいてください。NginxとPassengerでSinatraアプリを導入するにはどうすればよいですか?
no such file to load -- rack
私は、ドメイン/アプリのルートにpublic/
とtmp/
を作成しました。アプリのルートでも
このconfig.ru
次のとおりです。私はnginxのドキュメント、Sinatra section上の旅客から引き出さ
require 'rubygems'
require 'sinatra'
require 'myapp'
run Sinatra::Application
。
最後に、これはmyapp.rb
です。これはSinatraの上部から引っ張ったIntro docです。
# myapp.rb
require 'sinatra'
get '/' do
'Hello world!'
end
これを動作させるにはどうすればよいですか?私は疑う
0 /usr/lib/ruby/1.8/rubygems/custom_require.rb 31 in `gem_original_require'
1 /usr/lib/ruby/1.8/rubygems/custom_require.rb 31 in `require'
2 /dh/nginx/passenger/lib/phusion_passenger/rack/application_spawner.rb 145 in `load_rack_app'
UPDATE:ここでEDIT
は、旅客のエラーページで指定されたスタックトレースの上位3行です私はディスコを持っているvered なぜ乗客はラックを見つけることができませんが、解決策はまだ分かりません。私nginx.conf
の上部には、この行です:
user dhapache;
それはその旅客がdhapache
として、あるいはroot
としてのいずれかの宝石を探していると私はそれがps aux | less
から与えられたプロセスリストに基づいているか分からないと思われます:
root PassengerNginxHelperServer /dh/nginx/passenger ruby 3 4 0 6 0 300 1 nobody 999 150 /tmp/passenger.19012
root Passenger spawn server
dhapache nginx: worker process
dhapache nginx: worker process
root nginx: master process /dh/nginx/bin/nginx-be -c /dh/nginx/servers/httpd-ps77303/nginx.conf -p /dh/nginx/servers/httpd-ps77303/var/
しかし、いずれの場合にもGEMパスのみない宝石がない場所にgem env
点でリストアップされました。旅客がそれらの場所で宝石を探しているなら、それは見つからないでしょう。両方の場合においてsudo -u root gem env
/var/lib/gems/1.8
/dh/apache/.gem/ruby/1.8
からsudo -u dhapache gem env
/var/lib/gems/1.8
/root/.gem/ruby/1.8
宝石パスから
ジェムパスは、最初の(同一の)ディレクトリが空であると記載されている第2のディレクトリが存在しません。
このサーバー設定では、アプリケーションは/home/[username]/[domain]/
の下でホストされ、ローカルの宝石は/home/[username]/.gems/
にあります。アプリユーザーとしてgem env
を実行すると、ローカルのgemパスが表示されます。
地元の宝石を見つけるにはどうすればよいですか?
問題を解決しましたか?ラックは取り付けられていますか?例えば、 'gem query -n rack'は何を表示しますか? –
まだそれを理解していない。ラックマウント(0.8.3、0.6.13) ラックマウント(0.8.3,0.6.13) ラックキャッシュ(1.1) ラックマウント ラック保護(1.2.0)ラック-ssl(1.3.2) ラックテスト(0.6.1,0.5.6) ' –
このファイルがどこにあるか、正しい権限があるかどうかを確認してください。 find/usr/lib/ruby/-name rake.rb -exec ls -l '{}' ';' –